JavaScript 函數參數

JavaScript 函數不會對參數值進行任何檢查。

函數參數

在本教程中稍早的時間,您已經學到了函數可以擁有參數

functionName(parameter1, parameter2, parameter3) {
    要執行的代碼
}

函數參數(parameter)指的是在函數定義中列出的名稱

函數參數(argument)指的是傳遞到函數或由函數接收到的真實

參數規則

JavaScript 函數定義不會為參數(parameter)規定數據類型。

JavaScript 函數不會對所傳遞的參數(argument)實行類型檢查。

JavaScript 函數不會檢查所接收參數(argument)的數量。

參數默認

如果調用參數時省略了參數(少于被聲明的數量),則丟失的值被設置為:undefined

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

實例

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

親自試一試

如果函數調用的參數太多(超過聲明),則可以使用 arguments 對象來達到這些參數。

arguments 對象

JavaScript 函數有一個名為 arguments 對象的內置對象。

arguments 對象包含函數調用時使用的參數數組。

這樣,您就可以簡單地使用函數來查找(例如)數字列表中的最高值:

實例

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;
}

親自試一試

參數通過值傳遞

函數調用中的參數(parameter)是函數的參數(argument)。

JavaScript 參數通過傳遞:函數只知道值,而不是參數的位置。

如果函數改變了參數的值,它不會改變參數的原始值。

參數的改變在函數之外是不可見的。

對象是由引用傳遞的

在 JavaScript 中,對象引用是值。

正因如此,對象的行為就像它們通過引用來傳遞:

如果函數改變了對象屬性,它也改變了原始值。

對象屬性的改變在函數之外是可見的。