ES6特性之:Spread操作符

Spread操作符(...),也称作展开操作符,作用是将可迭代的(Iterable)对象进行展开。

比如有2个数组,我们要将其中一个数组中所有元素插入到另一个数组中,通过Spread操作符,就可以这样进行:

var fruits = ["apple", "orange", "peach"];
var shoppingList = ["t-shirt", ...fruits, "egg"]; 

// shoppingList的值:["t-shirt", "apple", "organe", "peach", "egg"]

另一个常见的场景是在函数调用传参的时候:

function testFunc(x, y, z) {
  console.log(x, y, z);
}

var args = [10, 15, 20];

testFunc(args);  //不正确
testFunc(...args); //正确

最后,我们在一开始提到,Spread操作符可以展开Iterable的对象,这样的话,除了数组之外,所有实现了Symbol.iterator的对象,如:Set, Map和Generator等等,都可以使用Spread操作符。

var map = new Map();
map.set("a", 1);
map.set("b", 2);
var arr1 = [...map];  //[["a", 1], ["b", 2]]

var set = new Set();
set.add(1);
set.add(2);
set.add(1);
set.add(3);
var arr2 = [...set];  //[1, 2, 3]

function *myGen() {
  yield "hello";
  yield "world";
}
var arr2 = [...myGen()]; //["hello", "world"]

扩散操作符的写法是...。用扩散操作符可以方便做的数组,对象的复制,合并操作等。


你可能感兴趣的:(ES6特性之:Spread操作符)