跳到主要內容
前端開發

JavaScript ES6:展開與其餘參數

2020 年整理的展開運算子、淺複製、類陣列轉換與其餘參數筆記。

W

這邊記錄展開與其餘參數。

合併陣列

範例:將 groupAgroupB 合併。console.log(...groupA) 會把值一個一個取出來。

使用 concat 與展開運算子合併 groupA、groupB,兩者都得到六個元素的陣列

淺複製

範例:直接將 groupA 指定給 groupB,兩個變數會共用同一個陣列參考。

將 groupA 直接指定給 groupB,再 push 新值時 groupA 也一起改變

若不要互相影響,可以用展開語法建立新陣列。

比較直接指定陣列與使用展開語法建立新陣列,後者不會影響 groupA

類陣列轉成陣列

類陣列不是真正的陣列,使用展開語法後可以轉成陣列。

將 querySelectorAll 取得的 NodeList 展開成真正陣列,轉換後可使用完整陣列方法

arguments 也不是陣列,可以用展開語法轉換後再使用 reduce()

arguments 直接使用 reduce 會出錯,展開成陣列後可正常加總

其餘參數

其餘參數可以接收不固定數量的參數。

函式使用其餘參數收集不固定數量的 money 參數,也可在前面保留固定參數

2026 年後記

展開只會建立淺層副本;需要複製巢狀資料時可改用瀏覽器內建的 structuredClone()

分享這篇