FE Interview Hub
JavaScript 基礎

ES2023 有什麼新特性?

AI 練習作答

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 評分