函數(shù)就是重復執(zhí)行的代碼片篇恒。
函數(shù)定義與執(zhí)行
<script type="text/javascript">
? ? // 函數(shù)定義
? ? function aa(){
? ? ? ? alert('hello!');
? ? }
? ? // 函數(shù)執(zhí)行
? ? aa();
</script>
變量與函數(shù)預解析
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)用的事件可以提取到javascript中調(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>