剩余参数语法允许我们将一个不定数量的参数表示为一个数组。也就是当函数的实参个数大于形参个数时,可以将剩余的实参放到一个数组中。
简单代码示例:
// 普通写法,不使用arguments和剩余参数,s1存的是10,s2存的是20,实参30不会被形参接收
function sum(s1,s2){
console.log(s1); // 10
console.log(s2); // 20
}
sum(10,20,30);
// 使用剩余参数写法
// 在参数前面加...即可,表示剩余参数
function sum2(s1,...s2){
console.log(s1); // 10
console.log(s2); // 是一个数组,数组中存放着20和30
}
sum2(10,20,30);
// 箭头函数剩余参数写法
// 在箭头函数中是无法使用arguments的
// ...num形参会接收过来所有的实参,是一个数组形式
const fn = (...num) => {
let sum = 0;
num.forEach(a => sum +=a)
return sum;
}
console.log(fn(1,2,3)); // 6
console.log(fn(1,2,3,4)); // 10
剩余参数和解构配合使用:
let person = ["孙悟空","猪八戒","沙和尚","唐僧"];
let [...newPer] = person;
console.log(newPer); // 正常输出person的数据