標籤:javascript 函式宣告 函數運算式
1.js中函數運算式的定義
運算式(expression)JavaScript中的一個短語,javascript會將其計算(evaluate)出一個結果。程式中的常量是一個最簡單的運算式。變數名也是一種簡單的運算式,它的值就是賦值給變數的值。複雜運算式是由簡單運算式組成。
——摘自《javascript權威指南》
一個經典的函數運算式的定義方法:
//函數運算式的聲明,運算式的值就是這個新定義的函數var expressFunc = function(){};
函數名稱是函式宣告語句必須得部分。它的用途就像變數的名字,新定義的函數對象會賦值給這個變數。對函數定義運算式來說,這個名字是可選的:如果存在,改名字只存在函數體中,並指代該函數對象本身。
注意:
以運算式來定義函數只適用於它作為一個大的運算式的一部分,比如在賦值和調用過程中定義函數。
//函數運算式的聲明,運算式的值就是這個新定義的函數var expressFunc = function(){};//函式宣告function abc(){}//傳入參數的函式宣告function abc2(test){}//函數運算式出入參數var expressTest = function(test){};//函數運算式可以包含名稱,這裡實際是將結果函數的結果賦值給expressTestvar expressTest = function evalu(test) { if (test) { return 2; } else{ return -1; }};//console.log(evalu()); //錯誤的調用方式console.log(expressTest());//函數運算式作為參數傳給其它函數data.sort(function(a, b){return a-b;})
以函數運算式的方式來定義函數,函數的名稱是可選的。如果定義了函數名稱,這時函數名稱會變成函數內部的一個局部變數(非常適合用於遞迴)。函數定義運算式特別適合用來定義只會用到一次的函數。
javascript中函式宣告和函數運算式的區別