JS 里的 || && ?? ?

let usr1 = undefined
// 1. 邏輯或 可以用來 設置默認值:如果 左邊 可以 轉成false,則返回右邊的值
//                                        可以 轉成true,則返回 左邊的值
let res = usr1 || '默認值'
console.log('------||-------')
console.log(res)

// 2. 邏輯與 用來簡化 if判斷,如果 左邊 執(zhí)行結果為 true,則 執(zhí)行右邊
//                                              false,則 不執(zhí)行右邊
res =  usr1 && '表達式'
console.log('------&&-------')
console.log(res)

// 【設置默認值 推薦用 ??】
// 3. ?? 空值合并操作符,只有 左邊為 undefined/null 時,才返回 右邊的值
res = usr1 ?? '右邊值'
console.log('------??-------')
console.log(res)

// 4. ? 可選鏈操作符,如果不確定 對象是否存在,則 在調用成員前,可以使用 ?
//      這樣 就不會 報undefined錯誤了!
let o = { age:12 , dog:{name:'ruiky',run(){console.log('汪汪汪')}}}
console.log(o.age)
console.log(o.dog?.name) // 有屬性   則 返回 屬性值
console.log(o.cat?.name) // 沒有屬性 則 返回 undefined
o.dog.run?.() // 如果 有方法,則 調用
o.dog.bark?.() // 如果 沒有方法,則 不調用,也不報錯
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容