js函數的定義表達式有兩種形式,分別爲“函數的定義表達式”和“函數的聲明”。函數的定義都是以“function”關鍵字開始,其後爲函數名,一對圓括號”()”—-括號裏面包含函數的形參,一對花括號”{}”—裏面是函數體。形式如下:
function functionName (args1,args2,args3,….){
函數體……….
}
舉例說明一下函數的定義表達式和函數的聲明語句:
//函數的聲明語句:
function printpropes(arr){
for(var a in arr){
console.log(a+":"+arr[a]+"/n");
}
}
funcion factoria(x){
if(x<1) return 1;
else return x*factoria(x-1);
}
//函數的定義表達式
var square=function(x){
return x*x;
}
var f=function fact(x){
if(x<1) return 1;
else return x*fact(x);
}
函數的定義表達式和函數聲明語句的區別:
1、函數聲明語句實際上聲明的是一個變量然後把該函數對象賦值給這個變量。
2、如果函數的定義表達式中存在函數名則該函數名將成爲該函數內部的一個局部變量
3、函數定義表達式適用於只會調用一次的函數。
4、函數聲明語句作用域爲全局,可以在他定義之前出現的代碼所調用。
5、函數的定義表達式可以出現在js代碼的任何地方
備註:所有函數都有返回值,沒有“return”關鍵字的函數返回undefined,有“return”關鍵字的函數返回其後面的表達式值。函數之間也可以相互嵌套。