1.扩展运算符
扩展运算符是三个点(...
)
例如:简单用法
console.log(...[a, b, c])
// a b c
console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5[...document.querySelectorAll('p')]
// [<p>, <p>, <p>]
例如:复杂用法(可用来作为函数调用)
function push(array, ...items) { array.push(...items);}function add(x, y) { return x + y;}
const numbers = [4, 38];
add(...numbers) // 42
复制数组
ES5写法:
const a1 = [1, 2];
const a2 = a1.concat();
a2[0] = 2;
a1 // [1, 2]
ES6写法:
const a1 = [1, 2];
const a2 = [...a1];
合并数组
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];
// ES5 的合并数组
arr1.concat(arr2, arr3);
// [ 'a', 'b', 'c', 'd', 'e' ]
// ES6 的合并数组
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]
该两种方法都是浅copy
处理字符串
[...'nihao']
// [ "n", "i", "h", "a", "o" ]