ES6 展開與其餘參數

展開

以往合併兩個陣列時,我們會用 concat 語法,如下圖:

在ES6 我們可以用 …groupA展開的語法,意思是將groupA陣列裡的值分別取出,再塞進新的陣列裡。

陣列淺複製

因為陣列是傳參考的特性,所以上圖中,groupA跟groupB裡面都會有 ‘阿明’

如果用…展開的方式,將groupA裡的值一個一個取出,再放進一個新的陣列裡,此時 groupA 跟 groupB 是兩個不同的陣列,groupA不會有 ‘阿明’

類陣列轉為陣列

由於類陣列 nodelist不是陣列,無法使用陣列方法,所以利用展開的方式,將類陣列 nodelist 裡的值取出後,放入新陣列中。如此newDoms就是一個新的陣列,可以使用陣列的方法。

物件的合併

利用展開語法 ,將兩個物件放入一個新的物件合併,personTwo會複寫與personOne重複的屬性,多的則加入。

其餘參數

我們可以用 其餘參數來取得不確定數量的參數。如果函式的最後一個命名參數以 … 開頭,它會被視為一個陣列,並將所有參數存入陣列中。