通過alert(1&&2)==2 alert(1||2)==1深入理解邏輯運算符||和&&


alert(1&&2)==2
alert(1||2)==1

我們對邏輯與(&&)和邏輯或(||)的認識是
對於 && 是全真為真
對於 || 是一真為真
看到上面的 1&&2 ==2就蒙了
應該這樣計算

先來說說 ||(邏輯或), 從字面上來說,只有前后都是 false 的時候才返回 false,否則返回 true。

alert(0||1);//顯然,我們知道,前面 0 意味着 false,而后面 1 意味着 true,那么上面的結果應該是 true,而事實返回的結果是 1。

alert(2||1);//前面 2 是 true,后面 1 也是 true,那返回結果又是什么呢?測試結果是 2,繼續看:

alert('a'||1);//同樣,前面 'a' 是 true,后面 1 也是 true;測試結果是 'a',下面

alert(''||1);//由上,我們知道前面 '' 是 false,后面 1 是 true,而返回結果是 1。再看下面

alert('a'||0);//前面 'a' 是 true,而后面 0 是 false,返回結果是 'a',繼續下面

alert('a'||'b');//前面 'a' 是 true,后面 'b'是 false,返回結果是 'a',我們繼續下面

alert(''||0);//前面 '' 是 false,后面 0 同樣是 false,返回結果是0

alert(0||'');//前面0是false,后面''是false,返回結果是''

結論:

1、只要 || 前面為 false,不管 || 后面是 true 還是 false,都返回 || 后面的值。

2、只要 || 前面為 true,不管 || 后面是 true 還是 false,都返回 || 前面的值。

下面說說 &&(邏輯與), 從字面上來說,只有前后都是 true 的時候才返回 true,否則返回 false。

alert(''&&1);//結是返回 '', && 前面 '' 是 false,后面是 1是 true。

alert(''&&0);//結是返回 '', && 前面 '' 是 false,后面是 0 也是 false。

alert('a'&&1);//結是返回 1, && 前面 'a' 是 true,后面是 1 也是 true。

alert('a'&&0);//結是返回 0, && 前面 'a' 是 true,后面是 0 是 false。

alert('a'&&'');//結是返回 '', && 前面 'a' 是 true,后面是 '' 是 false。

alert(0&&'a');//結是返回 0, && 前面 0 是 false,后面是 'a' 是true。

alert(0&&'');//結是返回 0, && 前面 0 是 false,后面是 '' 也是false。

結論:

1、只要 && 前面是 false,無論 && 后面是 true 還是 false,結果都將返 && 前面的值;
2、只要 && 前面是 true,無論 && 后面是 true 還是 false,結果都將返 && 后面的值;


免責聲明!

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



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