nodejs spread operator(三个点)

时间:2021-04-24 21:18:06

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