ES6`…`扩展(spread)/收集(rest)运算符详解

一、扩展运算符

我理解的,用()包起来就是扩展成单个值,用[]包起来就是扩展成数组。

1.代替apply

var test = function(a,b,c){
  console.log(a,b,c);
}
var arr = [1,2,3];
test(...arr); // 1 2 3

用apply的写法:

test.apply(null,arr);

2.代替concat

var arr1 = [1,2,3,4];
var arr2 = [0,...arr1,5,6];
console.log(arr2); // [0, 1, 2, 3, 4, 5, 6]

用concat的写法:

[0].concat(arr1,5,6); // [0, 1, 2, 3, 4, 5, 6]

3.代替split

var str = 'hello';
var arr3 = [...str];
console.log(arr3); // ["h", "e", "l", "l", "o"]

用split的写法:

'hello'.split(''); // ["h", "e", "l", "l", "o"]

二、收集运算符

1.接收不确定个数的形参

此功能和JAVA一样,当形参传入个数不确定时可用在形参上。

var rest2 = function(item, ...arr){
  console.log(item,arr);
}
rest2('hello',2,3,3,4); // hello [2, 3, 3, 4]

2.配合解构时使用

var [a,...temp] = [1,2,3,4];
console.log(a,temp); // 1 [2, 3, 4]
原文地址:https://www.cnblogs.com/firefly-pengdan/p/13426066.html