1肾扰、拓展運(yùn)算符
拓展運(yùn)算符是三個(gè)點(diǎn)(...)狐蜕。它好比rest參數(shù)的逆運(yùn)算煞聪,將一個(gè)數(shù)組轉(zhuǎn)為逗號分割的參數(shù)序列。
console.log(...[1,2,3]) //1 2 3
console.log(1,[2,3,4],5) //1 2 3 4 5
該運(yùn)算符主要用于函數(shù)調(diào)用膊夹。
function fun(x,y){
console.log(x + y) //3
}
let num = [1,2];
fun(...num)
替代函數(shù)apply方法
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
//上面代碼中衬浑,push方法不能是數(shù)組,有了拓展運(yùn)算符放刨,就可以直接將數(shù)組傳入push方法工秩。
拓展運(yùn)算符的運(yùn)用
(1)復(fù)制數(shù)組
數(shù)組是復(fù)合的數(shù)據(jù)類型,直接復(fù)制的話进统,只是復(fù)制了指向底層數(shù)據(jù)解構(gòu)的指針助币,而不是克隆一個(gè)全新的數(shù)組。
擴(kuò)展運(yùn)算符提供了復(fù)制數(shù)組的簡便寫法螟碎。
let arr1 = [1,2,3]
let arr2 = [...arr1] //ES6克隆數(shù)組
arr2[0] = '修改數(shù)組';
console.log(arr2) //['修改數(shù)組',2,3]
console.log(arr1) //[1,2,3]
(2)合并數(shù)組
拓展運(yùn)算符提供了數(shù)組合并的新寫法眉菱。
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)字符串
拓展運(yùn)算符還可以將字符串轉(zhuǎn)為真正的數(shù)組
let s = [...'hello']
console.log(s) //["h", "e", "l", "l", "o"]
3、Array.of()
Array.of()將一組值掉分,轉(zhuǎn)為數(shù)組
Array.of(1,2,3) //[1,2,3]
Array.of(3) //[3]