(true & true & false & false & true) == true //returns: false
正如您所看到的,按位与的行为与逻辑与完全相同:
(true && true && false && false && true) == true //returns: false
当位运算可以达到与逻辑运算相同的效果时,我在想为什么要使用逻辑运算符。
注意:请不要回答这是因为性能问题,因为在Mozilla Firefox中速度要快得多,请参见这个jsPerf:http://jsperf.com/bitwise-logical-and
true
和false
这两个值。当你使用真实函数进行测试时,性能问题就会浮现出来。 - nhahtdh&
替换为+
或*
,你的第一个代码片段仍然有效。但这并不意味着+
或*
总是与布尔运算符&&
执行相同的操作。 - georg2 && 1
是1
,2 & 1
是0
。毫无建设性。 - Salman A