ES6展开运算符的一些用法
合并数组
// 合并数组的方法有很多,比如
arr1.push(...arr2) // 追加数组末尾
arr1.unshift(...arr2) // 追加数组开头
// 整合两个数组并将某个数组放到另一数组特定位置
let arr1 = ["one","two"]
let arr2 = ["three",...arr1, "four"]
// 变成["three","one","two","four"]
拷贝数组
// 常用的是Arry.prototype.slice ,用展开运算符,数组中的对象依然是引用值
let arr = [1,2,3];
let arr2 = [...arr];
arr2.push(4)
解构
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 } 剩余的属性被分配到了展开运算符之后的z变量中
Math函数
// 将数组“展开”成为不同参数,任何可接收任意数量的参数的函数,都能够使用展开运算符来传参
let numbers = [9, 4, 7, 1];
Math.min(...numbers); // 1
不使用Apply的函数调用
// Function.prototype.apply传递一个数组作为参数,通常使用数组中存放的一组参数调用一个函数
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// 调用函数,传递args参数
doStuff.apply(null, args);
// 采用展开用算符能避免使用apply的同时,轻易的调用函数
doStuff(...args);