Некоторые значения, такие как ноль, ""
или undefined
, рассматриваются как ложные. Все остальное имеет значение true, поэтому оператор ||
просто возвращает первое ненулевое (т. Е. Истинное) значение в данной паре. Это полезно для таких трюков, как приведенный выше код, но я полагаю, что он не был добавлен в язык, чтобы пропустить нечетный оператор if.
Я подозреваю, что это могло произойти как подстройка производительности, так как языки более высокого уровня (такие как BASIC ... да, возможно, странное определение более высокого уровня) использовали фиксированные константы для true и false - часто 0 и -1 или 0 и 1.