可選鏈接運算符 (optional chaining operator) 是一個非常有用的運算符,我們可以用它來操作對象及其屬性或方法。
以前,你是否曾使用過 && 運算符作為備用方案呢?這是我最喜歡的 JavaScript 特性之一。
在 JavaScript 中,我們可以先檢查對象是否存在,然後嘗試獲取其屬性,就像這樣:
const car = null
const color = car && car.color
即使 car
為 null,也不會出現錯誤,color
將被賦予 null 的值。
你可以深入多層級:
const car = {}
const colorName = car && car.color && car.color.name
在其他一些語言中,使用 && 可能會返回 true 或 false,因為通常它是一個邏輯運算符。
但在 JavaScript 中不是這樣,這讓我們可以做一些很酷的事情。
現在這個新的可選鏈接運算符讓我們更加靈活:
const color = car?.color
const colorName = car?.color?.name
如果 car
為 null 或 undefined,結果將為 undefined。
不會出現錯誤(而使用 && 運算符時,如果 car
為 undefined,將出現 ReferenceError: car is not defined
錯誤)。