js中arguments的用法

前言

筆者在學習ECMAScript中會將arguments對象與數組混淆,如今理解清楚以後特來此記下,但願幫助你們理解。javascript

描述

javascript是個很寬鬆的語言,ECMAScript中函數不介意傳遞進來多少個參數,也不在意傳進來參數是什麼數據類型。即使你定義的函數只接收兩個參數,在調用這個函數時也未必必定要傳遞兩個參數,能夠傳遞一個、三個甚至不傳遞參數,解析器也不會有怨言。
爲何會如此呢?
由於ECMAScript中的參數在內部是用一個數組來表示的
在函數體內能夠經過arguments對象來訪問這個參數數組,從而獲取傳遞給函數的每個參數。java

演示

function sayHi(){
    alert("Hello " + arguments[0] + "," + arguments[1]);
}

緣由:arguments對象只是與數組相似(它並非Array的實例),能夠經過使用方括號語法訪問它的每個元素(第一個元素arguments[0],第二個元素arguments[1],以此類推;使用length屬性來肯定傳遞進來多少個參數)數組

function howManyArgs(){
    alert(arguments.length);
}
howManyArgs("string",45); //2

arguments對象能夠與命名參數一塊兒使用:函數

function doAdd(num1,num2){
    if(arguments.length == 2){
        alert(arguments[0] + num2);
    }
}
相關文章
相關標籤/搜索