简析扩展运算符(spread)和剩余运算符(rest)的区别(es6)

spread和rest运算符都是...+变量/参数的形式

spread

console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5
console.log([1, ...[2, 3, 4], 5])
//[1,2,3,4,5]
function add(x, y) {
  return x + y;
}

const numbers = [4, 38];
add(...numbers) // 42

spread主要是...[Array]对数组的展开

rest

function push(...items) {
    console.log(items);
}
let a = 4;
push(a, 1, 2, 3)
//[4,1,2,3]

rest主要是在函数的参数位置对于多个参数的转化成数组形式。而且只能把rest参数放在函数的最后一个位置。如果(array,...items,other)会报错

你可能感兴趣的:(前端)