为什么控制台显示" 2"和"假"在这个表达式?
var a = '' || 0 || 2 || true || false;
var b = 3 && true && false && null;
console.log (a,b);
答案 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
。