保護JavaScript 值:Elvis 和安全導航運算子
在JavaScript 中,確保變數不為null 或未定義對於防止錯誤至關重要。 Elvis 運算子和安全導航運算子是可以幫助完成此任務的兩種技術。
Elvis 運算子:條件捷徑
與Java 的三元運算子類似,Elvis 運算子如果左側表達式解析為false、null 或undefined,則(?:) 分配預設值。例如:
const displayName = user.name ?: "Anonymous";
如果 user.name 存在且不為空,displayName 將會收到其值。否則,它將預設為“匿名”。
安全導航運算子:避免 NullPointerExceptions
安全導航運算子 (?.) 在存取可能為 null 的屬性時可防止 NullPointerExceptions物件。它不拋出異常,而是簡單地傳回 null。例如:
const streetName = user?.address?.street;
如果 user 或 user.address 為 null,則 streetName 將保持為 null。這可以防止存取不存在物件的屬性時出現錯誤。
JavaScript 中的替代方案
目前,JavaScript 缺少 Elvis 運算子。相反,您可以使用邏輯 OR 運算子 (||) 進行條件賦值:
const displayName = user.name || "Anonymous";
但是,安全導航運算子沒有直接等效項。對於類似的功能,請考慮使用 CoffeeScript,它提供了一個存在運算符:
const zip = lottery.drawWinner?().address?.zipcode;
CoffeeScript 還提供其他語法增強功能,如多行註解、函數快捷方式和「性感」函數呼叫。這些功能可以提高 JavaScript 程式碼的可讀性和表現力。
以上是Elvis 和安全導航運算子如何保護 JavaScript 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!