2014-07-16 22 views
0

我正在检查javascript中AND运算符的值,下面的代码为什么会返回0.有人可以解释AND运算符的实际行为吗?javascript中的行为和操作符

var result = 88 && 6 && 0 && null && 9; 
alert(result); 
+1

请参阅这里http://en.wikipedia.org/wiki/Short-circuit_evaluation – elclanrs

+0

返回左边的东西,如果它是虚假的,否则右边的东西。所以在一个链条中,它会返回第一个虚假的东西,或者如果它们都是真的,就是链条中的最后一件东西。所以'0'。 –

+1

@elclanrs:短路评估不会进入它......这里没有'||'运算符,只有两个falsy操作数('0'和'null')。唯一需要注意的是'null'和'9'不会被评估,因为'&& 0'部分确保表达式是false –

回答

5

&&评估,就好像左边是假的左侧,否则计算结果为右侧。

(88) && (6 && 0 && null && 9) 

88是正确的,因此评估右侧。

(6) && (0 && null && 9) 

6是正确的,所以评估右侧。

(0) && (null && 9) 

0是错误的,所以它是结果。