類別靜態初始化區塊
新的類別靜態初始化區塊語法允許開發者將應該在某個類別定義中執行一次的代碼集中到一個地方。以下是一個示例,其中一個偽隨機數生成器使用靜態區塊在 class MyPRNG
定義被評估時初始化熵池一次。
新的類別靜態初始化區塊語法允許開發者將應該在某個類別定義中執行一次的代碼集中到一個地方。以下是一個示例,其中一個偽隨機數生成器使用靜態區塊在 class MyPRNG
定義被評估時初始化熵池一次。
JS-BigInt-Integration 功能讓 JavaScript 和 WebAssembly 之間的 64 位元整數傳遞變得簡單。本文解釋這代表什麼及其用途,包括使開發人員更容易、更快地執行程式碼,並加速建構時間。
Atomics.wait
和 Atomics.notify
是低層同步原型,適合用於實現互斥鎖及其他同步方式。然而,由於 Atomics.wait
是阻塞操作,因此無法在主執行緒上呼叫(嘗試這樣做會拋出 TypeError
)。
JavaScript 支持一系列複合賦值運算符,允許程式員簡潔地表達二元運算與賦值操作。目前僅支持數學運算或位元運算。
JavaScript 現在配備了一項新的正則表達式增強功能,稱為「匹配索引」。假設您想在 JavaScript 代碼中找到與保留字重合的無效變量名,並在變量名稱下方顯示插入符號和「下劃線」,例如:
如果你曾經在 JavaScript 中處理過字串,很可能遇到過 String#replace
方法。String.prototype.replace(searchValue, replacement)
根據你指定的參數返回一個進行部分匹配替換後的字串:
頂層await
使開發者能夠在 async 函數之外使用 await
關鍵字。它像是一個大的 async 函數,會讓其他import
它的模組在開始評估它們的主體之前等待。
新的 Nullish 合併提案 (??
) 添加了一個短路運算符,用於處理默認值。
你可能已經熟悉其他短路運算符 &&
和 ||
。這兩個運算符處理“真值”和“假值”。假設代碼示例 lhs && rhs
,如果 lhs
(讀作 左側)是假值,該表達式求值為 lhs
。否則,則求值為 rhs
(讀作 右側)。而在代碼示例 lhs || rhs
中則相反。如果 lhs
是真值,該表達式求值為 lhs
。否則,則求值為 rhs
。
在 JavaScript 中,長鏈的屬性訪問可能容易出錯,因為其中任何一步都可能評估為 null
或 undefined
(也稱為“空值”)。在每一步進行屬性存在檢查,很容易變成深度嵌套的 if
語句或一個長長的 if
條件,複製屬性訪問的鏈路:
如果你曾經為瀏覽器編寫 JavaScript,可能使用過 window
來訪問全域 this
。在 Node.js 中,你可能使用過 global
。如果你編寫了需要同時在這兩個環境中運作的代碼,可能會檢測哪個可用,然後使用它 —— 但隨著你要支持的環境和使用情境增加,需要檢查的標識符列表也會越來越長,事情很快就會變得難以控制: