0
我正在检查javascript中AND运算符的值,下面的代码为什么会返回0.有人可以解释AND运算符的实际行为吗?javascript中的行为和操作符
var result = 88 && 6 && 0 && null && 9;
alert(result);
我正在检查javascript中AND运算符的值,下面的代码为什么会返回0.有人可以解释AND运算符的实际行为吗?javascript中的行为和操作符
var result = 88 && 6 && 0 && null && 9;
alert(result);
&&
评估,就好像左边是假的左侧,否则计算结果为右侧。
(88) && (6 && 0 && null && 9)
88是正确的,因此评估右侧。
(6) && (0 && null && 9)
6是正确的,所以评估右侧。
(0) && (null && 9)
0是错误的,所以它是结果。
请参阅这里http://en.wikipedia.org/wiki/Short-circuit_evaluation – elclanrs
返回左边的东西,如果它是虚假的,否则右边的东西。所以在一个链条中,它会返回第一个虚假的东西,或者如果它们都是真的,就是链条中的最后一件东西。所以'0'。 –
@elclanrs:短路评估不会进入它......这里没有'||'运算符,只有两个falsy操作数('0'和'null')。唯一需要注意的是'null'和'9'不会被评估,因为'&& 0'部分确保表达式是false –