次の条件を考慮してください。
(true & true & false & false & true) == true //returns: false
ご覧のとおり、ビットごとの AND の動作は論理 AND とまったく同じです。
(true && true && false && false && true) == true //returns: false
ビット単位の操作が論理操作と同じであるのに、なぜ論理操作を使用する必要があるのか 疑問に思っています。
注: Mozilla Firefox ではかなり高速であるため、パフォーマンスの問題が原因であると答えないでください。この jsPerf を参照してください: http://jsperf.com/bitwise-logical-and