1. spread operator作用在数组上
有打散数组的效果,用来重新组装数组。
const arr1 = [1,2,3]
const arr2 = [...arr1, 4, 5]
console.log(arr2) // [1, 2, 3, 4, 5]
也可以用来复制数组。
const arr1 = [1,2,3]
arr1_copy = [...arr1]
console.log(arr1_copy) // [1, 2, 3]
还可以用来代替多个函数参数:
function add(a, b, c) {
return a + b + c;
}
const arr = [1, 2, 3]
console.log(add(...arr)) // 6
2. spread operator作用在函数定义中的参数上
有可变参数的效果,允许函数接收不定个数的参数。在函数内部,将spread operator作用的参数当作数组对待。
function addv2(...nums) {
let sum = 0
for (e of nums) { // nums 作为数组
sum += e
}
return sum
}
console.log(addv2(1, 2, 3, 4)) // 10
// 或者
const nums = [1, 2, 3, 4]
console.log(addv2(...nums)) // 10