最新的Web開發教程
 

JavaScript Function Parameters


一個JavaScript函數不執行參數值(參數)的任何檢查。


Function ParametersArguments

在本教程的前面,你了解到的函數可以有parameters

functionName ( parameter1, parameter2, parameter3 ) {
    code to be executed
}

Function parameters在功能定義列出的名稱

Function arguments都傳遞給(和收到)功能的實際


參數規則

JavaScript函數定義不為參數指定的數據類型。

JavaScript函數不執行類型檢查上傳遞的參數。

JavaScript函數不檢查收到的參數的個數。


參數默認值

如果一個函數被調用, 缺少參數 (小於聲明),缺少的值設置為: 未定義

有時候,這是可以接受的,但有時最好是默認值分配給參數:

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    }
}
試一試»

如果函數被調用的參數太多 (超過申報),這些參數可以使用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中,對象引用值。

正因為如此,物體會像它們是通過引用傳遞

如果一個函數改變一個對象的屬性,它改變了原有的價值。

更改對象的屬性可見(反射)之外的功能。