JavaScript 正在不斷發展,每年都會帶來一組新功能,旨在讓開發人員的生活更輕鬆。最新的更新 ES2023 包含了一些新工具,可以增強我們編寫、讀取和維護程式碼的方式。讓我們深入了解您希望在專案中開始使用的一些出色功能。
您是否曾經需要從陣列結尾開始尋找某個項目? ES2023 引入了 findLast 和 findLastIndex,它們就是這樣做的。
const numbers = [1, 2, 3, 4, 5]; const lastEven = numbers.findLast(num => num % 2 === 0); // 4 // Find last user who is 18 years old in large array const users = [/* array with 10000 users */]; users.findLast(user => user.age === 18);
const lastEvenIndex = numbers.findLastIndex(num => num % 2 === 0); // 3
這些方法非常適合您需要反轉搜尋邏輯的情況,使您的程式碼更清晰並且可能更有效率。
如果您正在用 JavaScript 編寫命令列工具,您將會欣賞對 hashbangs 的新支援。透過新增#!在檔案頂部,您可以直接指定解釋器,使您的腳本無需外部命令即可執行。
#!/usr/bin/env node console.log("Hello, world!");
這是一個小但方便的功能,特別是對於那些在 Node.js 中建立 CLI 工具的人來說。
以前,只有物件可以用作 WeakMap 中的鍵,但 ES2023 透過允許符號也改變了這一點。
const wm = new WeakMap(); const sym = Symbol('key'); wm.set(sym, 'value'); console.log(wm.get(sym)); // 'value' // Storing hidden game data that players can't easily access, such as secret unlock codes: const secretCode = Symbol('vc-cheat-code'); const gameData = new WeakMap(); gameData.set(secretCode, 'PANZER-ASPIRINE-BIGBANG-PRECIOUSPROTECTION');
此增強功能使 WeakMap 更加通用,特別是當您需要符號提供的獨特、無碰撞鍵時。
使用新的分組方法將陣列元素分組變得更加容易。
const animals = [ { type: 'mammal', name: 'dog' }, { type: 'bird', name: 'sparrow' }, { type: 'mammal', name: 'cat' }, ]; const grouped = animals.group(({ type }) => type); console.log(grouped); // { // mammal: [{ type: 'mammal', name: 'dog' }, { type: 'mammal', name: 'cat' }], // bird: [{ type: 'bird', name: 'sparrow' }] // }
此功能非常適合需要快速且有效率地對資料進行分類的場景。
使用 toSorted 對陣列進行排序變得更加清晰。與改變原始數組的 sort 不同,toSorted 傳回一個新的排序數組,而 toReversed 傳回一個新的反轉數組,保持原始數組不變。
const arr = [3, 1, 4, 1, 5]; const sortedArr = arr.toSorted(); console.log(sortedArr); // [1, 1, 3, 4, 5] console.log(arr); // [3, 1, 4, 1, 5] let data = [/* important data that shouldn't be modified */]; let reversedData = data.toReversed(); // Safely reverse
當您需要在使用排序版本時保留原始陣列時,此方法非常適合。
with 方法提供了一種透過取代特定索引處的元素來建立新陣列的簡單方法。
const numbers = [10, 20, 30, 40]; const newNumbers = numbers.with(2, 25); // [10, 20, 25, 40]
當您想要不可變地更新陣列時,此方法非常完美,從而可以更輕鬆地在函數式程式設計模式中管理狀態。
借助 Promise.withResolvers,管理 Promise 從未如此簡單。這種新方法可以讓您一次建立一個 Promise 及其解析和拒絕函數。
const { promise, resolve, reject } = Promise.withResolvers(); setTimeout(() => resolve("done"), 1000); promise.then(console.log); // "done"
這是一種處理非同步操作的簡潔方式,特別是當您需要從其建構函式外部控制 Promise 的結果時。
ES2023 是 JavaScript 的最新版本,自從 2023 年剛完成以來,它是相當新的。這意味著並非所有網頁瀏覽器都可以使用其新功能,但它們已經開始:
Node.js
轉譯器:
現在要使用新的 ES2023 功能,開發人員可以使用 Babel 等稱為轉譯器的工具將 ES2023 程式碼轉換為更多瀏覽器可以理解的舊版本。這樣,即使瀏覽器尚未準備好,您也可以開始使用新內容。
目前,對 ES2023 的支援仍在不斷增長。 Firefox 和 Chrome 等大型瀏覽器開始包含它的一些功能。有關支援內容和位置的詳細信息,您可以查看我可以使用嗎。使用轉譯器有助於使這些新功能在今天可用,同時我們等待瀏覽器在未來幾年迎頭趕上。
ES2023 帶來了一系列新功能,使 JavaScript 更強大且更易於使用。從增強的陣列方法到更好的承諾處理,這些更新都是為了讓您的程式碼更乾淨、更有效率。隨著 JavaScript 不斷發展和發展,隨時了解這些變更可確保您始終充分利用該語言。
以上是現代 JavaScript 功能:ES3 中的新增功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!