剩余参数语法允许我们把一个不定数量的参数定义为一个数组。
function fn(a,b,...n) {
console.log(a);
console.log(b);
console.log(n);
}
fn(1,2,3,4,5,6,7,8,9)
打印如下:
但是在箭头函数中使用不了arguments,所以我们采用如下的写法:
const fn = (...args) => {
let total = 0
args.forEach(element => total += element);
return total
}
console.log(fn(1,2,3,4,5));
...args表示接收所有的参数,因此在这里就相当于我们之前使用的arguments了。
剩余参数与解构的配合使用:
let arr1 = ['zs','ls','ww']
let [a, ...b] = arr1
console.log(a);
console.log(b);
当我们采用另一种写法时,配合使用的结果是这样的:
let obj = {
name: 'zs',
age: 20,
id: 1,
num: 2
}
let {name:uname,...all} = obj
console.log(uname);
console.log(all);
这里的all是一个对象,而不是数组。