Es6中我们可以通过... 变量的方式存储函数剩余的参数,该变量是包含剩余参数的数组
代码语言:javascript复制function sum(a,...num){
console.log(a);
console.log(num);
}
sum(1,2,3,4,5,7)
可以看到sum函数只明确接收一个a ,其他的参数不确定要传多少,这里就通过...num的形式使num接收剩余的参数
在es6之前我们接收不确定参数时我们通过arguments
代码语言:javascript复制function sum(){
console.log(arguments)
}
sum(1,2,3,4,5,7)
有了es6这个特性后我们可以做如下案例 求一个数和任意数的和
代码语言:javascript复制function sum(a,...num){
console.log(num.reduce((tmp,item)=>tmp item) a)
}
sum(10,10,10,10,10,10)//60
注意剩余参数必须是最后一个
...还可应用到数组 ...应用到数组会将数组展开
代码语言:javascript复制let arr =[1,2,3]
console.log(...arr)
//1 2 3
由此我们可以想到...可以直接拼接数组
代码语言:javascript复制//以前的方法
let arr =[1,2,3]
let arr2 = [4,5,6]
console.log(arr.concat(arr2));//[1,2,3,4,5,6]
//...展开数组
let arr3 = [7,8,9]
let arr4 = [10,11,12]
console.log([...arr3,...arr4]);//[7,8,9,10,11,12]
如果要传递一个数组给函数,并且这个数组需要遍历
代码语言:javascript复制let arr =[1,2,3]
function sum(a,b,c){
console.log(a b c);
}
sum(...arr);