首頁 > web前端 > js教程 > 可選連結和空合併

可選連結和空合併

王林
發布: 2024-08-21 06:13:02
原創
806 人瀏覽過

Optional Chaining and Nullish Coalescing

可選鏈:優雅的訪問器

假設您有一個代表使用者的對象,並且您想要存取他們的地址。

過去,你可能做過這樣的事情:

const user = {
 name: "Alice",
 address: { street: "123 Main St" }
};

const street = user.address && user.address.street;

console.log('Street: ', street); // Output: 123 Main St
登入後複製

但是如果使用者物件沒有地址屬性或地址物件沒有街道屬性會發生什麼?

你會得到一個錯誤!

輸入可選鏈!

此運算子 (?.) 可讓您安全地存取巢狀屬性,如果鏈的任何部分遺失,則傳回 undefined。

例如:

const user = {
 name: "Bob"
};

const street = user.address?.street;
console.log('Street: ', street); // Output: undefined
登入後複製

看看程式碼有多簡潔?

空值合併

預設值捍衛者。

現在,假設您想要為空或未定義的變數指派預設值。傳統上,您可能會使用 OR 運算子 (||)。但是,如果變數包含“假”值(例如 0 或空字串),這可能會導致意外行為。

為什麼有用:

  • 它透過取代冗長的 if 語句或三元運算子來簡化程式碼。
  • 它特別關注 null 和 undefined,與邏輯 OR 運算子 (||) 不同,後者也將假值(如 0 或空字串)視為「缺失」。
let userSettings = null; // Imagine this comes from an API or user input

// Without nullish coalescing:
let theme = userSettings !== null && userSettings !== undefined ? userSettings.theme : 'light';

// With nullish coalescing:
let theme = userSettings?.theme ?? 'light'; // If userSettings.theme is null or undefined, 'light' is used
登入後複製

要點:

  • 左??先評估。
  • 如果左邊為 null 或未定義,則傳回右側。
  • 否則,回到左側。

在處理可選屬性或可能遺失的資料時特別方便。


可選連結和空值合併可協助您編寫更具可讀性、健全性和抗錯誤性的程式碼。

以上是可選連結和空合併的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板