JavaScript 1.0 и 1.1. Операции && и || работают так:
ОперацияПоведение&& | Если первый операнд (expr1) может быть конвертирован в false, операция && возвращает false, а не значение выражения expr1. |
|| | Если первый операнд (expr1) может быть конвертирован в true, операция || возвращает true, а не значение выражения expr1. |