淺談ES2020鏈判斷運算符


1、先看幾個現象:

 

 從圖示的結果來看,我們會得出以下結論:

(1) “與運算符 &&“ 的目的或者說結果是返回第一個表達式或者變量為 false 的值,如果沒有,則返回最后一個表達式或者變量的值 。(遇假則停,以防報錯!!

(2) “或運算符 || “   的目的或者說結果是返回第一個表達式或者變量為 true的值,如果沒有,則返回最后一個表達式或者變量的值 。(遇假則走

(3) “三目運算符“   的目的或者說結果是其實和 “或運算符” 一樣 !

2、基於 &&運算符的效果

我們在項目中為了防止js 引擎拋出錯誤影響執行,經常會用到&& 運算符,比如 以下案例,最后的結果,如果firstName 為空,則返回default 。。

 

3、以上的寫法是不是感覺很麻煩啰嗦?

於是ES2020 提出了一種新的方法來代替這種寫法。

const firstName = message?.body?.user?.firstName || 'default'  

看到沒,這里的 message?.body 代表message===undefined? message:message.body 簡化了寫法!!!

還沒完,這里的 | |  也有替代方案  ?? 所以,繼續改良

const firstName = message?.body?.user?.firstName ?? 'default'  

特別注意:?? 和  | | 效果類似,但是 區別在於 ?? 僅代表前面的表達式 是 null 或者undefined  才會 執行后面的表達式 。而 | |  則代表前面的表達式 是 null 或者undefined或者false 或者 0 才會執行后面的。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM