为什么在Javascript中布尔运算符可能既不返回false也不返回true?

时间:2015-06-08 16:59:57

标签: javascript

var operand1 = null;
var operand2 = true;
var booleanOperatorReturnsABoolean = operand1 && operand2;
booleanOperatorReturnsABoolean == false || booleanOperatorReturnsABoolean == true

结果: false

在javascript控制台中运行它会显示布尔运算符(&&)有时可能不会产生布尔值

1 个答案:

答案 0 :(得分:3)

Because that's how they're designed.

&&如果是falsy则返回表达式的左侧,否则返回右侧。 ||返回表达式的左侧(如果它是truthy,否则返回右侧。

如果返回左侧,则右侧甚至不进行评估,允许您编写以下快捷方式:

var hasValue = "foobar" === someVariable;
hasValue && doSomething();

此处doSomething仅在somevariable等于"foobar"时执行