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]