?. 和 ?? 是 JavaScript 中的兩個新運算子,分別是可選鏈運算子(optional chaining operator)和空值合并運算子(nullish coalescing operator),
?. 運算子
?. 可選鏈運算子用于訪問可能為慷訓未定義的屬性或方法,它允許我們安全地訪問嵌套物件的屬性,如果中間的屬性為慷訓未定義,則不會拋出錯誤,而是回傳 undefined,例如:
const obj = {
foo: {
bar: 123
}
};
// 普通訪問屬性的方式
const x = obj.foo.bar; // x = 123
// 使用可選鏈運算子
const y = obj?.foo?.bar; // y = 123
// 如果物件未定義,則回傳 undefined
const z = undefined?.foo?.bar; // z = undefined
?? 運算子
?? 空值合并運算子用于檢查一個變數是否為 null 或 undefined,如果是,則回傳一個默認值,否則回傳該變數的值,與傳統的邏輯運算子 || 不同,?? 只會在左側的值為 null 或 undefined 時回傳右側的默認值,對于其他假值(如空字串、0、false 等)并不會回傳默認值,而是會回傳它本身,例如:
const x = undefined ?? 'default'; // x = 'default'
const y = null ?? 'default'; // y = 'default'
const z = 'value' ?? 'default'; // z = 'value'
需要注意的是,?? 運算子需要在 ES11 及以上的版本才能使用,
作者:yuzhihui
出處:https://www.cnblogs.com/yuzhihui/p/17122071.html
宣告:歡迎任何形式的轉載,但請務必注明出處!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/544048.html
標籤:其他
