首頁 >web前端 >js教程 >可選連結和 Nullish 合併如何改進 JavaScript 中的 Null 安全屬性存取和條件分配?

可選連結和 Nullish 合併如何改進 JavaScript 中的 Null 安全屬性存取和條件分配?

Linda Hamilton
Linda Hamilton原創
2024-12-03 12:51:13483瀏覽

How Can Optional Chaining and Nullish Coalescing Improve Null-Safe Property Access and Conditional Assignment in JavaScript?

EcmaScript 6 中的 NULL 安全屬性存取和條件賦值

在 JavaScript 中,存取可能是空或未定義。此外,有條件地為變數賦值可能涉及容易出錯的 try/catch 區塊。

ES2020 中引入的可選連結 (?.) 運算子提供了一種存取可為空物件的屬性的簡潔方法。如果屬性不存在,則傳回 undefined,從而無需明確檢查。

對於條件賦值,空合併賦值運算子 (??=) 僅當變數目前為 null 或不明確的。這可以避免不必要地覆蓋現有值。

範例:

const query = (succeed) => (succeed ? { value: 4 } : undefined);

let value = 3;
for (let x of [true, false]) {
  value = query(x)?.value ?? value;
}
console.log(value); // Output: 4

在此範例中,僅當 query(x).value 存在時才會進行賦值,否則舊值值會保留。可選鏈確保如果 query(x) 未定義,則存取屬性時不會引發錯誤。

其他注意事項:

  • ??= 運算子不能直接用於條件屬性分配,因為無論屬性是否存在,它總是分配值。
  • 可選鏈可以用於巢狀屬性訪問,例如 a?.b?.c,其中 a、b 和 c 是可空物件的屬性。
  • Babel-preset-env 可用於透過可選參數轉譯 JavaScript 程式碼連結和空合併運算子以與舊環境相容。

以上是可選連結和 Nullish 合併如何改進 JavaScript 中的 Null 安全屬性存取和條件分配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn