JavaScript逻辑运算符内部

时间:2013-06-06 00:01:31

标签: javascript boolean logical-operators

在阅读JavaScript文档时,我遇到了一个让我感到困惑的section

“逻辑运算符通常与布尔值(逻辑)值一起使用;当它们是,它们返回一个布尔值。但是,&&和||运算符实际上返回一个指定操作数的值,所以如果这些运算符与非布尔值一起使用,它们可能返回非布尔值。逻辑运算符如下表所示。

&& Operator: expr1 && expr2

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

|| Operator: expr1 || expr2

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

假设你有:

var a3 = false && true; 

因此考虑“and”运算符的规则,变量a3应该包含值true,因为“false”不能转换为false。

1 个答案:

答案 0 :(得分:5)

选择单词“可以转换为false”源于具有 truthy falsey 值的JavaScript。

所有值都可以转换为 truthy falsey 值。

false是假的,因此不会发生类型转换,但其他值会转换为false,例如:

undefined, null, NaN, 0, ""

因此,语句将返回false而不是true,因为false已经false,并且不需要转换。

相关问题