1. 程式人生 > 實用技巧 >ES6`…`擴充套件(spread)/收集(rest)運算子詳解

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]