Optional Chaining(可選鏈) | Javascript

JavaScript 中的 Optional Chaining(可選鏈) 是一種語法,用於簡化對可能為undefined或null的屬性或方法的訪問。這種語法在處理物件或陣列的多層屬性時特別有用,可以避免因為中途某一個屬性為undefined或null而導致程式出錯。

基本語法:

object 是一個物件,property 是該物件上的屬性。
使用Optional Chaining,當object為undefined或null時,整個表達式的值會被設置為undefined,而不會產生錯誤。
如果object存在且具有property屬性,則獲取該屬性的值。

const value = object?.property;

物件屬性範例:

city的值將是"user.address.city"的值,但如果user或address其中之一為undefined,則city將被設置為undefined,而不會拋出錯誤。

const user = {
  name: "John",
  address: {
    street: "123 Main St",
    city: "Example City"
  }
};

const city = user?.address?.city; // 如果user或address為undefined,city將為undefined

方法調用範例:

method 是object上的一個方法。
使用Optional Chaining,即使object是undefined或null,也不會導致錯誤。
如果object存在且具有method方法,則調用該方法;否則result將為undefined。

const result = object?.method?.();

適用於陣列:

Optional Chaining 也適用於陣列的索引訪問: array 是一個陣列,index 是索引。
如果array是undefined或null,或者index超出陣列範圍,則value將為undefined。

const value = array?.[index];

Optional Chaining 是自ECMAScript 2020(ES11)引入的新功能,它提供了一種優雅而安全的方式來處理可能為undefined或null的屬性或方法。