JavaScript 之 function函數及參數arguments


JavaScript用function關鍵字聲明函數,可以用return返回值,也可以沒有返回值。

建議:要么統一有返回值,要么統一都沒有返回值,這樣調試代碼方便。

函數定義格式:

function functionName(參數){
//函數體內
}

定義函數的時候,參數可以寫,也可以不寫,Javascript沒有限制傳遞參數的個數,也不介意傳入參數的數據類型。

所以函數的參數都是按值傳遞的

在函數體內可以通過arguments 對象來訪問參數數組,從而獲取傳遞給函數的每一個參數。

arguments.length:參數個數

用方括號語法訪問它的每一個參數。例如arguments[0]為傳進來的第一個參數。

function test(){
    console.log("======");
    console.log('agruments類型:'+typeof(arguments))
    console.log("====for...in讀參數為====");
    for(var each in arguments){
        console.log(arguments[each]);
    }
    console.log("====for讀參數為====");
    for(var i=0;i< arguments.length;i++){
        console.log(arguments[i]);
    }
    console.log("===arguments.length===");
    console.log(arguments.length)
}
test('a',20);

運行結果:

arguments的值永遠與對應命名參數的值保持同步,前提是傳入參數和命名參數一致。

示例:

function test(name,age){
    console.log('傳進的age='+age)
    arguments[1]=50;
    console.log('給agruments[1]賦值后的age='+age)
}
test('line',20);

運行結果:

 

從運行結果發現,

arguments[1]的值與age的值是同步的

注意:所有參數傳遞的都只是值,不可能通過引用傳遞參數。


如果傳入參數少於命名參數,示例如下
function test(name,age){
    console.log('傳進的age='+age)
    arguments[1]=50;
    console.log('給agruments[1]賦值后的age='+age)
    console.log('給agruments[1]賦值后的arguments[1]='+arguments[1])
}
test('line');
 
        
運行結果如下:

從運行結果看出:
如果傳入參數少於命名參數,那命名參數與arguments是不會同步的
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM