關於JS的邏輯運算符 與&& 或|| 非!


轉自:簡書

 

1、邏輯與(&&)

(1)對於布爾值,只有都為true才返回true;

(2)對於不是布爾值的情況則:

          如果第一個操作數是對象,則返回第二個數

                        eg:var str = new Array(); 

                        console.log(str&&8);//返回值為8

          如果第二個操作數是對象,則只有在第一個操作數的求值結果為true的情況下才會返回該對象。

          如果第兩個操作數都是對象,則返回第二個數操作數。

          如果有一個操作數是null,則返回null。

                        eg: console.log(8&&null);//返回結果為null

          如果有一個操作數是NaN,則返回第NaN。

          如果第一個操作數是undefined,則返回undefined。

2.邏輯或(||)

(1)對於布爾值,邏輯或是非常簡單的,只要有一個true,就返回true;

(2)對於不是布爾值的情況則:

                 如果第一個操作數是對象,則返第一個操作數

                 如果第一個操作數的求值結果為false,則返回第二個操作數

                 如果兩個操作數都是對象,則返回第一個操作數

                 如果兩個操作數是null,則返回null

                 如果兩個操作數是NaN,則返回NaN

                 如果兩個操作數是undefined,則返回undefined

3.邏輯非(!)

如果一個操作數是一個對象,返回false;

如果一個操作數是一個空字符串,返回false;

如果一個操作數是一個非空字符串,返回false

如果一個操作數是一個數值0,返回true;

如果一個操作數是任意的非零字符,返回false;

如果一個操作數是null,返回true;

 如果一個操作數是NaN,返回true;

如果一個操作數是undefined,返回true;

注:邏輯與,邏輯非都是從左向右判斷,誰的第一個邏輯判斷為true就顯示誰,只不過邏輯非必須兩個都為true,而且誰是第一個false就顯示誰。



作者:littler7
鏈接:https://www.jianshu.com/p/b03b90d2a324
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

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



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