arguments函数内置的实参集合,不管我们设置形参与否,再或者是否传递了实参,arguments始终都会存在(ES6箭头函数中没有arguments),arguments只能出现在函数体中
在ES6中可以使用剩余运算符来获取传递的实参
arguments是一个伪数组(类似于数组,但不是数组,个元素集合HTMLCollection类似)
arguments根据索引记录了每一个传递进来的实参信息(和是否定义形参变量没有关系),arguments中包含了所有传递进来的实参信息)
arguments中length属性代表了传递实参的个数
====================================================================
练习 输出所有形参和的值,非法数字不进行计算
function sum() { let total = 0;//创建一个变量定义初始值 for (var i = 0; i < arguments.length; i++) { let item =arguments[i]-0;//将循环中每一项的值转换为字符串(-0相当于Number()) if (!isNaN(item)) { // 判断不是NaN的值 total += item; //将每次循环得到的有效数字累加到total中 }; }; console.log(total);// =>100 }; sum(10,'70', 20,'fdsa');//调用计算函数,传递形参