ES6 中的 rest 参数,用于获取函数剩余的参数,形式:(…变量名),把一个分离的参数序列整合为一个数组,值是一个数组。
arguments 的缺陷
- 如果和形参配合使用,容易导致混乱
- 从语义上,使用 arguments 获取参数,由于形参缺失,无法从函数定义上理解函数的真实意图
语法
function 函数名(...形参名){
函数体;
return 返回值;
}
何时使用
- 只要不知道传入函数的参数个数,就可以使用
function func(...args){
console.log(args);
}
func(1,2,3,4,5,6) // [1, 2, 3, 4, 5, 6]
function func(num, ...args){
let total = 0;
for(let val of args){
total += val;
}
console.log(total);
}
func(1,2,3,4,5,6) // 20
细节
- 一个函数,仅能出现一个剩余参数
- 一个函数,如果有剩余参数,剩余参数必须是最后一个参数