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

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 15:44:01
字體:
來源:轉載
供稿:網友

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擴展運算符的用途,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同江市| 上思县| 玉田县| 赣榆县| 绥阳县| 津南区| 青川县| 冀州市| 台江县| 朝阳区| 鸡东县| 长葛市| 益阳市| 广东省| 枝江市| 新邵县| 玉环县| 怀仁县| 静安区| 崇文区| 临朐县| 曲麻莱县| 夹江县| 新河县| 三亚市| 朝阳区| 临潭县| 临西县| 大姚县| 裕民县| 伊通| 潞西市| 齐齐哈尔市| 延长县| 马关县| 遂川县| 石渠县| 临夏市| 且末县| 讷河市| 南昌县|