ES6 可選鏈操作符

可選鏈操作符( ?. )允許讀取位于連接對象鏈深處的屬性的值,而不必明確驗證鏈中的每個引用是否有效。?. 操作符的功能類似于 . 鏈?zhǔn)讲僮鞣煌幵谟?,在引用為?nullish ) (null 或者 undefined) 的情況下不會引起錯誤,該表達(dá)式短路返回值是 undefined。與函數(shù)調(diào)用一起使用時,如果給定的函數(shù)不存在,則返回 undefined。

es6可選鏈

?.

語法

obj?.prop
obj?.[expr]
arr?.[index]
func?.(args)

例子

如果我們多層的調(diào)用,直接調(diào)用當(dāng)中間某層不存在時代碼就會報錯,如直接不判斷調(diào)用adventurer.from.cat.name,當(dāng)中間某一層如 cat 不存在時就會報錯

發(fā)現(xiàn)判斷某個對象的函數(shù)存在才調(diào)用,舊方法就會比較繁瑣

let adventurer = { from: { cat: { name: 'suisuiz' } } }

if(adventurer && adventurer.from && adventurer.from.cat && adventurer.from.cat.name){
    let name = adventurer.from.cat.name
    console.log(name)
}

es6 可選鏈 簡化了很多

adventurer?.from?.cat?.name

if(adventurer?.from?.cat?.name) {
    let name = adventurer?.from?.cat?.name
    console.log(name)
}

文檔

MDN | 可選鏈操作符
MDN | 空值合并運算符
阮一峰 | ECMAScript 6 入門 | 運算符的擴(kuò)展

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容