...:将一个数组转为用逗号隔开的参数序列
举例:
...[1,2,3] ====》1,2,3
console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5
替代函数的 apply 方法 :
//ES5
apply
var num=[1,2,3];
function fun(x,y,z){}
fun.apply(null,num)
//ES6
...
var num=[1,2,3];
function fun(x,y,z){}
fun(...num)
数组拼接一起
// ES5的 写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
Array.prototype.push.apply(arr1, arr2);
// ES6 的写法
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
数组复制
//数组直接复制,只是复制了指向底层数据结构的指针
const a1 = [1, 2];
const a2 = a1;
a2[0] = 2;
a1 // [2, 2]
//ES5的复制方法
const a1 = [1, 2];
const a2 = a1.concat();
a2[0] = 2;
a1 // [1, 2]
//ES6的复制方法
const a1 = [1, 2];
// 写法一
const a2 = [...a1];
// 写法二
const [...a2] = a1;