JavaScript 基礎
ES2023 有什麼新特性?
ES2023(ECMAScript 14)主要新特性
1. Array.prototype.toSorted()
回傳排序後的新陣列,不改變原陣列(非破壞性)。
const arr = [3, 1, 2];
const sorted = arr.toSorted(); // [1, 2, 3]
console.log(arr); // [3, 1, 2](原陣列不變)
2. Array.prototype.toReversed()
回傳反轉後的新陣列,不改變原陣列。
const arr = [1, 2, 3];
const reversed = arr.toReversed(); // [3, 2, 1]
console.log(arr); // [1, 2, 3](不變)
3. Array.prototype.toSpliced()
回傳splice 操作後的新陣列,不改變原陣列。
const arr = [1, 2, 3, 4];
const result = arr.toSpliced(1, 2, 'a', 'b'); // [1, 'a', 'b', 4]
console.log(arr); // [1, 2, 3, 4](不變)
4. Array.prototype.with()
回傳指定索引替換後的新陣列,不改變原陣列。
const arr = [1, 2, 3];
const result = arr.with(1, 99); // [1, 99, 3]
console.log(arr); // [1, 2, 3](不變)
5. Array.prototype.findLast() 和 findLastIndex()
從陣列末端開始搜尋。
const arr = [1, 2, 3, 4, 5];
arr.findLast(n => n % 2 === 0); // 4
arr.findLastIndex(n => n % 2 === 0); // 3
6. Hashbang Grammar(#!)
允許在腳本開頭使用 #!,方便 Unix 系統直接執行 JS 檔案。
#!/usr/bin/env node
console.log('Hello!');
7. WeakMap 支援 Symbol 作為 key
const key = Symbol('key');
const map = new WeakMap();
map.set(key, 'value');
總結
ES2023 的主點是引入了一系列非破壞性(non-mutating)陣列方法,讓函數式程式設計更加方便,避免不小心改動原始資料。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
