EcmaScript 6 中的NULL 安全屬性存取和條件賦值
能夠存取可能為null 或未定義的物件的屬性,而不會導致錯誤稱為空安全屬性存取。另一方面,條件賦值僅允許在滿足特定條件時才賦值。
在 EcmaScript 6 中,多個運算子支援空安全屬性存取和條件賦值。
可選鏈 (?.)
ES2020 中引入,可選鏈允許存取可能為 null 或未定義的物件的屬性,無例外。它使用 ?。運算符,它傳回未定義而不是引發錯誤:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { value = query(x)?.value; } console.log(value); // Output: 4
空合併賦值(??=)
空合併賦值運算子(??= )僅噹噹前值為null 或未定義時才為變數賦值。它傳回賦值的結果:
let value = 3; value ??= query(false)?.value; console.log(value); // Output: 3
相容性
主要現代瀏覽器和Node.js 版本支援可選鏈,同時支援nullish 合併賦值在瀏覽器和Node.js v14 中。對於較舊的環境,請考慮使用 Babel 或 polyfill。
替代方案
在這些運算子之前,解決方法包括:
結論
可選鍊和nullish 合併賦值為簡潔的null 安全屬性存取提供了強大的工具和EcmaScript 6 中的合併賦值為簡潔的null 安全屬性存取提供了強大的工具和EcmaScript 6 中的條件賦值。它們簡化了程式碼,增強了可讀性,並減少了出錯的可能性。
以上是可選連結和空值合併如何改進 ES6 中的空安全屬性存取和條件分配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!