JS 函數(shù)的基礎(chǔ)知識

函數(shù)


函數(shù)就是重復執(zhí)行的代碼片。

函數(shù)定義與執(zhí)行

<script type="text/javascript">

? ? // 函數(shù)定義

? ? function aa(){

? ? ? ? alert('hello!');

? ? }

? ? // 函數(shù)執(zhí)行

? ? aa();

</script>

變量與函數(shù)預(yù)解析

JavaScript解析過程分為兩個階段区匣,先是編譯階段,然后執(zhí)行階段,在編譯階段會將function定義的函數(shù)提前焕盟,并且將var定義的變量聲明提前夜畴,將它賦值為undefined。

<script type="text/javascript">? ?

? ? aa();? ? ? // 彈出 hello址貌!

? ? alert(bb);? // 彈出 undefined

? ? function aa(){

? ? ? ? alert('hello!');

? ? }

? ? var bb = 123;

</script>

提取行間事件

在html行間調(diào)用的事件可以提取到j(luò)avascript中調(diào)用铐拐,從而做到結(jié)構(gòu)與行為分離。

<!--行間事件調(diào)用函數(shù)? -->

<script type="text/javascript">? ? ? ?

? ? function myalert(){

? ? ? ? alert('ok!');

? ? }

</script>

......

<input type="button" name="" value="彈出" onclick="myalert()">

<!-- 提取行間事件 -->

<script type="text/javascript">

window.onload = function(){

? ? var oBtn = document.getElementById('btn1');

? ? oBtn.onclick = myalert;

? ? function myalert(){

? ? ? ? alert('ok!');

? ? }

}? ?

</script>

......

<input type="button" name="" value="彈出" id="btn1">

匿名函數(shù)

定義的函數(shù)可以不給名稱练对,這個叫做匿名函數(shù)遍蟋,可以將匿名函數(shù)直接賦值給元素綁定的事件來完成匿名函數(shù)的調(diào)用。

<script type="text/javascript">

window.onload = function(){

? ? var oBtn = document.getElementById('btn1');

? ? /*

? ? oBtn.onclick = myalert;

? ? function myalert(){

? ? ? ? alert('ok!');

? ? }

? ? */

? ? // 直接將匿名函數(shù)賦值給綁定的事件

? ? oBtn.onclick = function (){

? ? ? ? alert('ok!');

? ? }

}

</script>

函數(shù)傳參

<script type="text/javascript">

? ? function myalert(a){

? ? ? ? alert(a);

? ? }

? ? myalert(12345);

</script>

函數(shù)'return'關(guān)鍵字

函數(shù)中'return'關(guān)鍵字的作用:

1螟凭、返回函數(shù)執(zhí)行的結(jié)果

2虚青、結(jié)束函數(shù)的運行

3、阻止默認行為

<script type="text/javascript">

function add(a,b){

? ? var c = a + b;

? ? return c;

? ? alert('here!');

}

var d = add(3,4);

alert(d);? //彈出7

</script>



1螺男、js函數(shù)

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>js函數(shù)</title>

<script type="text/javascript">

//定義一個函數(shù)

? ? ? function aa(){

// console.log('hello!');

? ? ? ? alert().log('hello!');

}

// aa()

? </script>

</head>

<body>

<input type="button" value="彈框" onclick="aa()">

</body>

</html>



2棒厘、js可控制換膚

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>js可控制換膚</title>

<link rel="stylesheet" type="text/css" href="css/1.css" id="link1">?? 引入外部樣式

<script type="text/javascript">

window.onload =function () {

var btn01 =document.getElementById('btn01');

var btn02 =document.getElementById('btn02');

btn01.onclick =skin01;//加上括號是直接執(zhí)行? 不加括號是點擊執(zhí)行

? ? ? ? btn02.onclick =skin02;

}

/*定義一個函數(shù)*/

? ? ? function skin01() {

var link1 =document.getElementById('link1');

link1.href ="css/1.css";

}

function skin02() {

var link1 =document.getElementById('link1');

link1.href ="css/2.css";

}

</script>

</head>

<body>



? <input type="button" value="皮膚01" id="btn01" >

<input type="button" value="皮膚02" id="btn02">

<div class="box01"></div>

<div class="box02"></div>

</body>

</html>




3、變量和函數(shù)預(yù)解析

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>變量和函數(shù)預(yù)解析</title>

<script type="text/javascript">

// alert(a);//undefined

? ? ? var a =123;

myalert();//調(diào)用放前面照常使用

? ? ? function myalert() {

alert('hello');

}

// function add() {

//? ? alert('123456')

// }

// add()

? </script>

</head>

<body>

</body>

</html>




4下隧、匿名函數(shù)

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>匿名函數(shù)</title>

<script type="text/javascript">

window.onload =function(){

var oDiv =document.getElementById('div1');

// oDiv.onclick = myalert();

// function myalert() {

// alert('hello');

// }

? ? ? ? oDiv.onclick =function () {//匿名函數(shù)? 不用起名 直接賦給他

? ? ? ? ? ? alert('hello!')

};

}

</script>

</head>

<body>

<div id="div1">這是一個div元素</div>

</body>

</html>



5奢人、函數(shù)傳參

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>函數(shù)傳參</title>

<script type="text/javascript">

window.onload =function(){

var oDiv =document.getElementById('div1');

changeStyle("color","gold");

changeStyle("background","red");

changeStyle("width","300px");

changeStyle("height","300px");

changeStyle("fontSize","30px");

function changeStyle(styl,val){

oDiv.style[styl] = val;

}

}

</script>

</head>

<body>

<div id="div1">這是一個div元素</div>

</body>

</html>

6、函數(shù)return關(guān)鍵字

例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>函數(shù)return關(guān)鍵字</title>

<script type="text/javascript">

window.onload =function(){

var input01 =document.getElementById('input01');

var input02 =document.getElementById('input02');

var btn =document.getElementById('btn');

//寫入屬性

// input01.value = 10;

// input02.value = 5;

//匿名函數(shù)

? ? ? ? btn.onclick =function () {

var val01 =input01.value;

var val02 =input02.value;

// alert(val01);

? ? ? ? ? ? var rs =add(val01,val02);

alert(rs);//1234

? ? ? ? }

function add(a,b) {

var c =parseInt(a) +parseInt(b);

return c;//可以返回結(jié)果

// return; //結(jié)束函數(shù)的運行 下面函數(shù)不在執(zhí)行? 直接結(jié)束

// alert('計算已經(jīng)完成');? return后面的不會執(zhí)行

? ? ? ? }

}

</script>

</head>

<body>

<input type="text" name="" id="input01">

<input type="text" name="" id="input02">

<input type="button" name="" value="相加" id="btn">

</body>

</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淆院,一起剝皮案震驚了整個濱河市何乎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌迫筑,老刑警劉巖宪赶,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脯燃,居然都是意外死亡搂妻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門辕棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欲主,“玉大人邓厕,你說我怎么就攤上這事”馄埃” “怎么了详恼?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長引几。 經(jīng)常有香客問我昧互,道長,這世上最難降的妖魔是什么伟桅? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任敞掘,我火速辦了婚禮,結(jié)果婚禮上楣铁,老公的妹妹穿的比我還像新娘玖雁。我一直安慰自己,他們只是感情好盖腕,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布赫冬。 她就那樣靜靜地躺著,像睡著了一般溃列。 火紅的嫁衣襯著肌膚如雪劲厌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天哭廉,我揣著相機與錄音脊僚,去河邊找鬼。 笑死遵绰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的增淹。 我是一名探鬼主播椿访,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虑润!你這毒婦竟也來了成玫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤拳喻,失蹤者是張志新(化名)和其女友劉穎哭当,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冗澈,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡钦勘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亚亲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彻采。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡腐缤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肛响,到底是詐尸還是另有隱情岭粤,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布特笋,位于F島的核電站剃浇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏猎物。R本人自食惡果不足惜偿渡,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霸奕。 院中可真熱鬧溜宽,春花似錦、人聲如沸质帅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煤惩。三九已至嫉嘀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間魄揉,已是汗流浹背剪侮。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洛退,地道東北人瓣俯。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像兵怯,于是被迫代替她去往敵國和親彩匕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容