[剩余参数运算符]
剩余参数运算符与扩展运算符都是...,但是使用起来却不一样,可以简单的理解为剩余运算符和扩展运算符是相反的,扩展运算符是把数组或对象进行展开,而剩余运算符是把多个元素‘合并’起来。
主要用于不定参数,可以理解为 arguments 的替代品,因此 ES6 开始不再使用 arguments 对象
Example
let demoFun = function (...args) {
for (let item of args) {
console.log(item);
}
};
demoFun(1, 2, 3); // 1, 2, 3
let demoFun = function (argA, ...args) {
console.log(argA);
console.log(args);
};
demoFun(1, 2, 3);
// 1
// [2, 3]
配合结构使用时,把他理解为整体为一个元素就行了
var [a, ...rest] = [1, 2, 3, 4];
// 这里把...rest整体看成一个元素
console.log(a); // 1
console.log(...rest); // [2, 3, 4]