1、拓展运算符
拓展运算符是三个点(...)。它好比rest参数的逆运算,将一个数组转为逗号分割的参数序列。
console.log(...[1,2,3]) //1 2 3
console.log(1,[2,3,4],5) //1 2 3 4 5
该运算符主要用于函数调用。
function fun(x,y){
console.log(x + y) //3
}
let num = [1,2];
fun(...num)
替代函数apply方法
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
//上面代码中,push方法不能是数组,有了拓展运算符,就可以直接将数组传入push方法。
拓展运算符的运用
(1)复制数组
数组是复合的数据类型,直接复制的话,只是复制了指向底层数据解构的指针,而不是克隆一个全新的数组。
扩展运算符提供了复制数组的简便写法。
let arr1 = [1,2,3]
let arr2 = [...arr1] //ES6克隆数组
arr2[0] = '修改数组';
console.log(arr2) //['修改数组',2,3]
console.log(arr1) //[1,2,3]
(2)合并数组
拓展运算符提供了数组合并的新写法。
let arr1 = [1,2,3];
let arr2 = [3,4,5];
let arr3 = [4,4,5,6,7,8,9,];
let arr = [...arr1,...arr2,...arr3];
console.log(arr); //[1, 2, 3, 3, 4, 5, 4, 4, 5, 6, 7, 8, 9]
(4)字符串
拓展运算符还可以将字符串转为真正的数组
let s = [...'hello']
console.log(s) //["h", "e", "l", "l", "o"]
3、Array.of()
Array.of()将一组值,转为数组
Array.of(1,2,3) //[1,2,3]
Array.of(3) //[3]
网友评论