es6 展開運算子 ...
阿新 • • 發佈:2019-02-12
好記性不如爛筆頭,在學習的過程中,越來越明白這句話的含義;
ES6的展開運算子使用三個點來表示 ...
使用展開運算子的前提:物件具有 Iterator 遍歷器介面 ,比如陣列,
怎麼判斷一個物件是否具有Iterator 遍歷器介面呢,我們檢視物件是否有 Symbol(Symbol.iterator)
屬性就可以了,有的話,那就具有Iterator 遍歷器介面,沒有的話,那就不具有;
我們看看陣列:
<script> let arr=["測試","介面","型別"]; console.log(arr);</script>檢視控制檯:
可以看到是有這個屬性的,那麼就是說,陣列是具有這個介面的,
也就是說,我們可以對陣列使用展開運算子;
陣列,map ,set 在es6中都是具有這個介面的,但是object物件在es7中才增加了這個介面;
除了上面的,字串也是可以的,和陣列一樣;
下面我們可以利用展開運算子展開一個數組:
上面輸出:測試 介面 型別
在陣列的名字前面加上 ... 即可展開陣列中的所有內容;
利用上面的展開,我們就可以在函式的引數中使用:
<script> let arr=["測試","介面","型別"]; function abc(a,b,c){ return a+b+c; } console.log(abc(...arr)); </script還有很多的使用方法,慢慢積累了...