国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

ES6擴展運算符的用途實例詳解

2024-05-06 15:12:40
字體:
來源:轉載
供稿:網友

ES6的擴展運算符可以說是非常使用的,在給多參數函數傳參,替代Apply,合并數組,和解構配合進行賦值方面提供了很好的便利性。

擴展運算符就是三個點“...”,就是將實現了Iterator 接口的對象中的每個元素都一個個的迭代并取出來變成單獨的被使用。

看這個例子:

console.log(...[3, 4, 5])

結果:

3 4 5

調用其實就是:

console.log(3, 4, 5)

合并數組

可以使用擴展運算符將多個數組進行合并。

let arr1 = [1, 2, 3]let arr2 = [4, 5, 6]let arr3 = [7, 8, 9]console.log([...arr1, ...arr2, ...arr3])

結果:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

函數多參數傳遞, 替換Apply

先把參數定義成數組,函數定義好。

let arr4 = ['arg1', 'arg2', 'arg3', 'arg4']let fun1 = (a1, a2, a3, a4) => { console.log( a1, a2, a3, a4)}

在ES6前,要把數組參數傳遞給函數,要么按照下標訪問數組元素去調用函數,缺點是數組個數和函數參數個數完全綁定,有一個個數發生變化,那么就要修改了。

fun1(arr4[0], arr4[1], arr4[2], arr4[3])

要么就用Apply進行調用,結果當然是沒毛病,也是ES6之前用的最多的。

fun1.apply(null, arr4)

如果是用擴展運算符,那就方便咯。

fun1(...arr4)

結果:

arg1 arg2 arg3 arg4

調用簡潔爽快。

與解構配合賦值

配合使用,可以從數組中提取除第一個以后的所有元素成另外一個數組。

let [var1, ...arr5] = [1, 2, 3, 4, 5, 6]console.log(var1)console.log(arr5)

結果:

1
[ 2, 3, 4, 5, 6 ]

但要注意,與解構配合時,擴展運算符只能用在最后一個上,否則報錯。

可以展開實現了Iterator 接口的對象

比如Map,Set,數組就是從Iterator接口實現來的,Object不是,所以擴展Object會報錯。

擴展Set。

let set1 = new Set()set1.add(1)set1.add(2)set1.add(3)console.log(...set1)

結果:

1 2 3

擴展Map。

let map1 = new Map();map1.set('k1', 1);map1.set('k2', 2);map1.set('k3', 3);console.log(...map1)

結果:

[ 'k1', 1 ] [ 'k2', 2 ] [ 'k3', 3 ]

注意,擴展出來的一個個的數組,按照map的鍵值對結構,每個數組都是2個元素,一個是key,一個是value。

如果擴展Object,就會報錯。

let obj1 = {  p1: 1,  p2: 2,  p3: 3}console.log(...obj1)

報錯。

總結

以上所述是小編給大家介紹的ES6擴展運算符的用途,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 横峰县| 阳春市| 石狮市| 汤阴县| 卢氏县| 理塘县| 鞍山市| 边坝县| 密山市| 阳信县| 和田市| 贞丰县| 阿城市| 和龙市| 光山县| 乐陵市| 南江县| 武穴市| 天台县| 夹江县| 安吉县| 彭阳县| 泗水县| 策勒县| 北票市| 桓台县| 西林县| 宝鸡市| 台南县| 和顺县| 阳朔县| 个旧市| 东光县| 铜鼓县| 新安县| 通化市| 德化县| 盘锦市| 长海县| 和硕县| 聂拉木县|