ES6 展開運算子 三個點

2021-09-29 01:43:30 字數 1829 閱讀 1502

展開運算子,將乙個陣列轉為用逗號分隔的引數序列

合併陣列

let a =[1

,2,3

];let b =[4

,5,6

];let c =

[...a,

...b]

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

解構賦值

let a =[1

,2,3

,4,5

,6]let

[c,...d]

= aconsole.

log(c)

;// 1

console.

log(d)

;// [2,3,4,5,6]

//展開運算子必須放在最後一位

function

f(a,b,c)

let args =[1

,2,3

];// 以下三種方法結果相同f.(

null

,args)f(

...args)f(

1,2,

3)functionf2(

...args)f2(

1,2,

3)// [1,2,3]

functionf3(

)f3(1

,2,3

)// [1,2,3]

array.from() 可以通過以下方式來建立陣列物件:

let a =[1

,2,3

];let b =[4

,5,6

];array.prototype.push.

(a,b)

;// 或

a.push

(...b)

// 兩種方法取其一

淺拷貝

//陣列

var a =[1

,2,4

]var b =

[...a]

a.push(6

)console.

log(b)

// [1,2,4]

//物件

var a =

var b =

a.a =

5console.

log(b.a)

// 1

字串轉為陣列,正確識別 32 位的 unicode 字元

[

...'siva'

]// ['s','i','v','a']

[...

'x\ud83d\ude80y'

].length // 3

具有 iterator 介面的物件,轉換成陣列

var nodelist = document.

queryselectorall

('div');

console.

log(

[...nodelist]

)// 轉化成陣列

var map =

newmap([

[1,11

],[2

,22],

[3,33

]]);

console.

log(

[...map.

keys()

]);// [1,2,3]

es6 展開運算子

展開運算子不能用在物件當中,只能在可遍歷物件中使用 iterables iterables的實現是依靠 symbol.iterator 函式,目前只有array,set,string內建 symbol.iterator 方法,不過es7草案中已經加入了物件展開運算子。可用展開運算子展開陣列,解構陣列...

es6 展開運算子

好記性不如爛筆頭,在學習的過程中,越來越明白這句話的含義 es6的展開運算子使用三個點來表示 使用展開運算子的前提 物件具有 iterator 遍歷器介面 比如陣列,怎麼判斷乙個物件是否具有iterator 遍歷器介面呢,我們檢視物件是否有symbol symbol.iterator 屬性就可以了 ...

es6展開運算子

展開運算子 在es6中用.來表示展開運算子,它可以將陣列方法或者物件進行展開。先來看乙個例子它是如何使用的。const arr1 1,2,3 const arr2 arr1,10,20,30 這樣,arr2 就變成了 1,2,3,10,20,30 arr1中的值完全轉殖到了arr2中 arr1改變a...