长布尔表达式

时间:2016-04-19 10:53:19

标签: javascript boolean expression

为什么控制台显示" 2"和"假"在这个表达式?

var a = '' || 0 || 2 || true || false;
var b = 3 && true && false && null;
console.log (a,b);

1 个答案:

答案 0 :(得分:1)

你得到了这些结果,因为它在逻辑比较,使用逻辑运算符$scope.$parent&& ,如果你采取了看看MDN Specification of Logical Operators,你会看到:

  

逻辑OR(||):如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数可以转换为true,则返回true;如果两者都可以转换为false,则返回false。

     

逻辑AND(&&):如果可以转换为false,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,&&如果两个操作数都可以转换为true,则返回true;否则,返回false。

所以在你的情况下:

第一个表达式:

||

它将返回var a = '' || 0 || 2 || true || false; ,因为它是评估为2的第一个操作数。

第二个:

true

它将返回var b = 3 && true && false && null; ,因为其操作数之一为false