类数组对象:arguments
在函数调用时,我们总能见到arguments这个对象,它具体是用来干什么的呢?感觉逼格非常高呢
-
函数在使用时,我们总会位函数传入各种参数,arguments会将参数储存起来以便我们使用,下标从0开始。返回值还有数组的长度。
function a() { console.log(arguments); } a(1,2,3,4,5)
可以看到打印结果位:
-
使用情景
-
在函数传参的时候,不必要指明参数名称,可以使用arguments来确定
-
有些语言在我们给函数指定了参数名之后,当调用函数时,会判断当前传入的参数是否与函数定义的参数个数相等,不相等就会报错,但是灵活的js(不是我说,js是真的灵活)并不会验证传递给函数的参数个数是否等于函数定义的参数个数。所以为了装逼(代码的简洁度),我们使用arguments调用参数可以不混淆不同函数之间的参数名。另外为了装逼(代码的严整度),我们也能用arguments来判断当前传入参数的个数是否与我们需要的数量一致。
function add() { if( arguments.length == 2 ){ return arguments[0] + arguments[1]; }else{ return '传入参数不合法'; } } console.log( add(2,3) ); //5 console.log( add(1,2,3) );//传入参数不合法
arguments封装一个数字相加的方法
function add() { var len = arguments.length, sum = 0; for(;len--;){ sum += arguments[len]; } return sum; } console.log( add(1,2,3) ); //6 console.log( add(1,3) ); //4 console.log( add(1,2,3,5,6,2,7) ); //26