一個JavaScript函數不執行參數值(參數)的任何檢查。
Function Parameters和Arguments
在本教程的前面,你了解到的函數可以有parameters :
functionName ( parameter1, parameter2, parameter3 ) {
code to be executed
}
Function parameters在功能定義列出的名稱 。
Function arguments都傳遞給(和收到)功能的實際值 。
參數規則
JavaScript函數定義不為參數指定的數據類型。
JavaScript函數不執行類型檢查上傳遞的參數。
JavaScript函數不檢查收到的參數的個數。
參數默認值
如果一個函數被調用, 缺少參數 (小於聲明),缺少的值設置為: 未定義
有時候,這是可以接受的,但有時最好是默認值分配給參數:
如果函數被調用的參數太多 (超過申報),這些參數可以使用arguments對象到達。
arguments對象
JavaScript函數有一個內置的對象調用的參數對象。
參數對象包含的函數被調用時使用的參數數組(調用)。
這種方式可以簡單地使用一個功能,找到(例如)的號碼列表的最高值:
例
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
試一試» 或者創建一個函數來匯總所有輸入值:
例
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
試一試» 參數是按值傳遞
參數,在函數調用,是函數的參數。
JavaScript的參數是按值傳遞:此功能只得到知道值,而不是該參數的位置。
如果函數改變一個參數的值,它不會改變該參數的原始值。
更改參數是不可見(反射)之外的功能。
對象是通過引用傳遞
在JavaScript中,對象引用值。
正因為如此,物體會像它們是通過引用傳遞:
如果一個函數改變一個對象的屬性,它改變了原有的價值。
更改對象的屬性可見(反射)之外的功能。