擴充套件運算子(...)的用途
1.合併陣列
一直以來,有很多方法合併陣列,但是擴充套件運算子給了我們全新的方法去實現合併陣列:
arr1.push(...arr2) // 把arr2合併到arr1的後面
arr1.unshift(...arr2) //把arr2合併到arr1的前面
如果你想在陣列內合併陣列,你可以像下面這樣做:
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
2.複製陣列
複製陣列是我們常常要做的工作,在過去,我們會使用Array.prototype.slice
去實現,但現在我們可以使用擴充套件運算子去得到一個複製後的陣列:
var arr = [1,2,3];
var arr2 = [...arr]; // 就像 arr.slice()
arr2.push(4)
3.結構賦值
結構賦值是一個十分有趣的實踐,我在自己的React專案中大量的使用了這種技巧。你可以使用擴充套件運算子配合其他運算子一起,從變數中提取有用的資訊,就像這樣:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }