永不言弃!
不忘初心:感恩的心!上进的心!

true||* == true,                第一个为true就不在看第二个了,值为true。

fasle || true == true       第一个为false继续看第二个,第二个为true就为true

false || false == false   第一个为false继续看第二个,第二个为false就为false

 

false &&* == false ,         第一个为false就不在看第二个了,值为false。

true && false == false     第一个为true 继续看第二个,第二个为false 就为false

true && true == true         第一个为true 继续看第二个,第二个为true 就为true

 

当进行逻辑运算的不是布尔值,而是数字的时候,就等于相应的数字,当然先进性布尔判断,字符串也一样。

(1&&2&&5) || 3的值就为5,因为1为true继续判断第二个2也为true继续判断第三个5也为true,则前面为true不用判断3了,所以值为5

1&&2||3&&4|| 3这个就为2

0||''||'a'这个就为'a'因为前两个的布尔值都为false所以继续判断第三个。就为'a'。

你的题目在下面

false||6||true首先false继续判断第二个,则(false||6)这个的值为6.为真则不判断最后一个值了,就为6

false&&6 因为第一个已经false就不会看第二个6了,就为false

 

总结:其实&&运算返回真的条件是所有为真,所以有一个为假啦,就直接返回假啦。

而‖运算,返回为真的条件是有一个为真,所以会从头开始往后执行,如果遇到一个真就停止往后执行啦,直接返回真,而如果到最后还是假,那就是假。

 

 

/如果&&第一个为false则&&后面的值不论是true或者是false,都返回前面的值  
 //如果&&第一个为true,则&&后面的值不论是true或者是false,都返回后面的值  
alert(f&&s);  
 alert(f&&null);  
 alert(null&&s);  
 alert(null&&null);  
   
 //只要||前面是false,不管||后面是true或者是false,都返回后面的值  
 //只要||前面是true,不管||后面是true或者是false,都返回前面的值  
alert(f||s);  
 alert(f||0);  
 alert(0||s);  
 alert(0||0);

 

本文引自:https://segmentfault.com/q/1010000004309510

posted on 2017-08-01 10:20  永不言弃!  阅读(187)  评论(0)    收藏  举报