ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
关于arguments,可以看看下面 函数1 ![](https://box.kancloud.cn/734ffe6e79824f9aa72bff6f4434462c_595x191.png) 函数2 ![](https://box.kancloud.cn/0f426ddbcd7529f7d4fb9610f6f29bd1_406x179.png) 第二个函数中没有形参,直接以agrguments[0]的方式获取了参数,,这里函数的agrguments并不是一个数组,虽然用起来是数组,他是一个对象,类数组,有自己的lengths属性,不过需要注意的是 ****函数名.lengths不等同于agrguments.lengths****, 第一个是在函数创建的时候就确定了的,但是第二个是实际的个数是实际的个数。 另外,不要乱用arguments,因为非常的影响可读性。 不过既然出现了肯定是有他存在的理由的,arguments适合创建动态函数的场景,如下例子: ~~~ /* * 创建一个函数 announce, 需要完成以下要求: * 1、函数可接受不定数目的参数 * 2、拼接所有参数成一句完整的字符串 * 3、最终通过 console.log 输出拼接好的字符串 */ function announce(){ var length = arguments.length; var i=0; // var str=new String(); var str ='获得本次大会第一名的共有'+length+'人,分别是' if(length){ for(;i<length-1;i++){ str =str+ arguments[i]+'、'; } return str+arguments[length-1]+'。' } } var resultStr = announce('Tom', 'Jack', 'Mike'); console.log(resultStr); ~~~ 在这个函数中我们不知道会有在实际使用的时候会传入多少参数进来,所以我们可以使用遍历arguments的个数。