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) 未定義,則存取屬性時不會引發錯誤。
其他注意事項:
以上是可選連結和 Nullish 合併如何改進 JavaScript 中的 Null 安全屬性存取和條件分配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!