剩余参数是ES6引入替代arguments的,所以为了更容易理解,最好先去看下arguments对象使用方法。
剩余参数定义
剩余参数是将函数调用时,传入的不定数量的参数表示为一个真数组,语法结构是“...+参数名”的形式。
剩余参数特点
1. 自动存在于所有函数中,函数内部可以直接访问,无需声明。
2. 是真数组,可以直接使用所有数组的方法。
3. 单独使用时,跟arguments一样,收集所有传入的参数。
4. 跟其他形参一起使用时,顾名思义,只收集剩余的参数。调用时传入的1,跟函数中形参a对应,剩余参数不包含这一项。
注意事项
1. 必须作为最后一个参数。否则会报错。
// 错误写法
function invalid(a, ...rest, b) {}
2. 一个函数只能有一个剩余参数
// 错误写法
function invalid(a, ...b, ...c) {}