6.6剩余参数rest
【1】问题:箭头函数不支持arguments,如果箭头函数遇到参数个数不确定的情况,怎么办?
【2】解决:只要在ES6箭头函数中遇到参数个数不确定的情况,都可以使用剩余参数语法来代替arguments接收参数的值
【3】如何使用
var 函数名=( ...数组名 )=>{
//将来传入函数的所有实参值,都会被...收集起来,保存到...会指定的数组中。
}
【4】优点
i:支持箭头函数
ii:生成的数组是纯正的数组类型,可以使用数组的所有函数
iii:自定义数组名,比arguments简单的多!
【5】…和其他形参配合使用,只获得其他形不要的,也就是剩余参数
var 函数名=(形参1, 形参2,...数组名)=>{
//...接收除了形参1和形参2之外的所有参数
}
【6】示例
// 使用剩余参数来代替arguments ...数组名
// ...用于接收参数,接受到的参数自动添加到arr数组中
var add=(...arr)=>{
// var res=0;
// for(var n of arr){
// res+=n;
// }
return arr.reduce((pre,elem)=>pre+elem,0);
}
console.log( add(1,2,3,4));
console.log(add(1,2,3,4,5));
var add1=(...arr)=>{
var res=0;
for(var n of arr){
res+=n;
}
return res;
}
console.log( add1(1,2,3,4));
console.log(add1(1,2,3,4,5));