话不多说,直接上例子,看看 ...运算符到底能干嘛
let arr1 = [1,2,3];
console.log(...arr1);//1,2,3
根据上面例子,可以得出
let arr1 = [1,2,3];
let arr2 = [5,6,7];
console.log([...arr1,...arr2])//[1,2,3,5,6,7]
这个是不是比数组的连接concat更简便了
同理,可直接对数组里面的值进行运算
function sum(x,y){
return x+y;
}
let arr1 = [3,5];
let arr1 = [3,5,8];
sum(...arr1);// 8
sum(...arr2);// 8
如果我们想把一个数组添加到另一个数组的尾部,常规的写法是
//常规写法
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);
对于dom标签
console.log(document.querySelectorAll('div'))
console.log([...document.querySelectorAll('div')])
输出结果
扩展运算符可以与解构赋值结合起来,用于生成数组。
var arr = ['ni','wo','ta'];
var first = list[0];//ni
rest = arr.slice(1);//['wo','ta']
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
const [...butLast, last] = [1, 2, 3, 4, 5];
// 报错
const [first, ...middle, last] = [1, 2, 3, 4, 5];
// 报错
const [last,...butLast] = [1, 2, 3, 4, 5];//正确
扩展运算符还可以将字符串转为真正的数组。
[...'hello']
// [ "h", "e", "l", "l", "o" ]
上面的写法,有一个重要的好处,那就是能够正确识别 32 位的 Unicode 字符。
'x\uD83D\uDE80y'.length // 4
[...'x\uD83D\uDE80y'].length // 3
【右上角点个赞,谢谢】
版权声明:本文为Chris__wang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。