Javascript函數(shù)實際上是對象。
內(nèi)部屬性由雙方括號表示。
Javascript定義了幾個JavaScript中對象的內(nèi)部屬性。
typeof
運算符為任何返回“function"對象與 [[Call]]
屬性。
函數(shù)聲明以 function
關(guān)鍵字開頭,并以名稱繼續(xù)的功能。
以下代碼使用函數(shù)聲明文字語法創(chuàng)建函數(shù)將兩個數(shù)字加在一起。
function add(num1, num2) {
return num1 + num2;
}
函數(shù)表達式不需要函數(shù)后面的名稱。
這些函數(shù)是匿名的,因為函數(shù)對象本身沒有名稱。
函數(shù)表達式通常通過變量或?qū)傩砸谩?/p>
下面的代碼創(chuàng)建一個函數(shù)表達式將兩個數(shù)字加在一起。
var add = function(num1, num2) {
return num1 + num2;
};
上面的代碼為變量 add
分配了一個函數(shù)值。
賦值表達式以分號結(jié)尾。
函數(shù)聲明被提升到上下文的頂部。
使用函數(shù)聲明,我們可以定義一個函數(shù)在代碼中使用而不生成錯誤。
例如:
var result = add(5, 5);
function add(num1, num2) {
return num1 + num2;
}
JavaScript引擎將函數(shù)聲明提升到頂部和實際上執(zhí)行代碼,就像它是這樣寫的:
function add(num1, num2) {
return num1 + num2;
}
var result = add(5, 5);
只要我們在使用它們之前定義函數(shù),我們可以使用函數(shù)聲明或函數(shù)表達式。
JavaScript函數(shù)可以用作任何其他對象。
我們可以為變量分配函數(shù),將它們添加到對象,將它們作為參數(shù)傳遞給其他函數(shù),并從函數(shù)返回它們。
我們可以使用函數(shù)在任何地方使用參考值。
考慮下面的例子:
function myMethod() {
console.log("Hi!");
}
myMethod(); // outputs "Hi!"
var myMethod2 = myMethod;
myMethod2(); // outputs "Hi!"
在這段代碼中,有一個函數(shù)聲明為 myMethod
。
然后一個名為 myMethod2
的變量創(chuàng)建并分配 myMethod
的值。
myMethod
和 myMethod2
都指向同一個函數(shù)。
Javascript函數(shù)是對象。
我們可以將一個函數(shù)作為參數(shù)傳遞給另一個函數(shù)。
以下代碼顯示了如何將函數(shù)作為數(shù)據(jù)傳遞到另一個函數(shù)。
JavaScript數(shù)組上的sort()方法接受比較函數(shù)作為可選參數(shù)。
當比較兩個值時調(diào)用比較函數(shù)。
如果第一個值小于第二個值,則比較函數(shù)返回a負數(shù)。
如果第一個值大于第二個,函數(shù)返回一個正數(shù)。
如果兩個值相等,函數(shù)應(yīng)返回零。
對數(shù)字數(shù)組進行排序,例如:
var numbers = [ 11, 15, 18, 41, 71, 110, 21, 16 ];
// hgci.cn
var s = function(first, second) {
return first - second;
};
numbers.sort(s);
console.log(numbers);
numbers.sort();
console.log(numbers);
上面的代碼生成以下結(jié)果。
在上面的代碼中,比較函數(shù)s被傳遞給sort()。
更多建議: