什么是函數(Function)
function sum(a,b){
return a+b;
}
其實通俗的說就是一個有名稱的代碼段,方便重用。
要注意的是:
1.Javascript 的函數語法,因為Javascript本身就是區分大小寫的,所以function不能寫作Function或FUNCTION.
2.sum是函數的名稱,這個并不是必須的,等以后我們會說到。
3.return是返回,如果不寫的話,函數的返回是undefined.如果要返回多個值,可以返回個數組或者對象(以后再說)
函數的調用
下面我們講函數的基本調用。
var result = sum(1,2)
函數的參數
不好意思的說,這個才是本篇文章的重點。
實例一,參數少于 實際定義參數的數目
var result = sum(1);
結果result 為NaN,這就說明了,參數b的值為undefined,但并不會報錯,這就無形中制造了bug.
實例二,參數多于 實際定義參數的數目
sum(1,2,3,4,5)
結果為3.發現多于的參數被忽略了。
實例三,沒有參數的函數
function args(){return arguments;}
每個函數里都有一個默認的數組那就是arguments .它就是每個函數默認的參數為[] 。如果我們調用函數如下
args(1,2,3,4,5,6);
會發現arguments的值為[1,2,3,4,5,6]。這下容易了,我們可以改造下上面的sum方法
sum(1,2,3,4);function sum(){
var res= 0;
for(i=0;i<arguments.length;i++){
res+=arguments[i];
}
return res;
}
Functions are data
這一篇是函數里比較重要的概念,那就是函數是一個數據。看個例子
function f(){return 1;}
var f=function(){return 1;}
這兩個函數定義都是相同的。
typeof f;
f的值為"function",所以說Javascript 的 函數是個數據類型。它有比較兩個重要的特點
1.它包含了代碼
2.能被執行
看個例子
var sum = function(a,b){return a+b;}
var add = sum;
sum=undefined;
typeof sum;
typeof add;
add(1,2);
我們把函數sum做為一個值賦給了add,發現刪除了sum不影響add的調用。所以函數也就是個正常的賦值。
匿名函數(Anonymous Functions)
Javascript中,可以不用寫賦值的代碼,如
"abcd" 1 [1,2,3]
這樣都不會報錯,這些數據叫做匿名的。同樣的函數做為數據也可以是匿名的
function(a){return a}
匿名函數的作用有兩個
1.可以把匿名函數做為一個參數傳入到另一個函數中。
2.你可以理解運行這個匿名函數
下面就會詳細討論這兩個功能的作用了。
新聞熱點
疑難解答
圖片精選