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);
    }
}
相关文章
相关标签/搜索