ES6 引入 rest 参数(形式为...变量名,变量名是一个数组),用于获取函数的多余参数,这样就不需要使用arguments对象了。
arguments对象不是数组,而是一个类似数组的对象。
rest 参数是一个真正的数组,数组特有的方法都可以使用。
function add(...values) {
let sum = 0;
console.log(values); // [2, 5, 3]
for (let val of values) {
sum += val;
}
return sum;
}
add(2, 5, 3) // 10
⚠️rest 参数只能是函数的最后一个参数,否则会报错。
![](https://i-blog.csdnimg.cn/blog_migrate/dd190a9d70d6bf8738064d3040263de3.jpeg)
⚠️函数的length属性,不包括 rest 参数。
(function(a, ...b) {}).length // 1