1. 程式人生 > >js的參數理解

js的參數理解

rip define span 長度 函數 cti col 自動 決定

ECMAScript內的參數在內部使用一個數組來表示的,在函數內可以通過arguments對象來訪問這個參數數組,從而傳遞給函數的每一個參數

function doADD () {
    if (arguments.length == 1) {
        alert(arguments[0] + 10);
    } else if (arguments.length == 2){
        alert(arguments[0] + arguments[1] );
    }
}

doADD(10);             //20
doADD(30,20);          //50

另外,arguments 對象還可以和命名參數一起使用

function doADD (num1,num2) {
    if (arguments.length == 1) {
        alert(arguments[0] + 10);
    } else if (arguments.length == 2){
        alert(arguments[0] + arguments[1] );
    }
}

arguments 的值和對應命名參數的值保持同步

arguments對象的長度是由傳入的參數個數決定的,不是由定義函數時候的命名參數個數決定的

沒有傳遞命名參數將會被自動賦予undefined值

所有參數傳遞的都是值,不可能通過引用傳遞參數(

原始類型的內容是存儲在棧中;而對象的內容是存儲在堆中,指向堆的地址存儲在棧中。
原始類型傳遞的是存儲在棧裏的內容,對象傳遞的是存儲在棧裏的地址, 都是copy棧裏的值來傳遞, 都是值傳遞。

js的參數理解