es6 展開運算子

2021-08-19 22:15:20 字數 1214 閱讀 7410

好記性不如爛筆頭,在學習的過程中,越來越明白這句話的含義;

es6的展開運算子使用三個點來表示  ...

使用展開運算子的前提:物件具有 iterator 遍歷器介面 ,比如陣列,

怎麼判斷乙個物件是否具有iterator 遍歷器介面呢,我們檢視物件是否有symbol(symbol.iterator)

屬性就可以了

,有的話,那就具有

iterator 

遍歷器介面,沒有的話,那就不具有;

我們看看陣列:

<

script>

letarr

=["測試",

"介面",

"型別"];

console

. log(arr);

script>

檢視控制台:

ƒ unshift()

values

:ƒ values()

symbol(symbol.iterator)

:ƒ values()

symbol(symbol.unscopables)

:__proto__

:object

可以看到是有這個屬性的,那麼就是說,陣列是具有這個介面的,

也就是說,我們可以對陣列使用展開運算子;

陣列,map ,set  在es6中都是具有這個介面的,但是object物件在es7中才增加了這個介面;

除了上面的,字串也是可以的,和陣列一樣;

下面我們可以利用展開運算子展開乙個陣列:

<

script>

letarr

=["測試",

"介面",

"型別"];

console

. log(

...arr);

script>

上面輸出:測試 介面 型別

在陣列的名字前面加上 ...  即可展開陣列中的所有內容;

利用上面的展開,我們就可以在函式的引數中使用:

<

script>

letarr

=["測試",

"介面",

"型別"];

function

abc(

a,b,

c)console

. log(

abc(

...arr));

script>

還有很多的使用方法,慢慢積累了...

es6 展開運算子

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

es6展開運算子

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

ES6 展開運算子

es5 的寫法 function f x,y,z var args 0,1,2 es6 的寫法 function f x,y,z var args 0,1,2 f args 其實就是把陣列的每個資料拆開然後放進去 let arr autumn wscats 析構陣列 let y autumn,y a...