Проверка истинности выражения со значением "или"



  • Имеются два выражения и результат их выполнения в БАС:
    (5-5) == (0) значение истина в БАС
    (5-5) == (0 || 0.05) значение ложь в БАС
    Почему второе выражение принимает значение ложь?
    Ведь ноль равен одному из значений



  • @botovod потому что, не правильная запись. Надо так
    (5-5) == (0) || (5-5) == (0.05)



  • @uraabk

    Тем не менее если запись не правильна ни БАС ни онлайн тестеры скриптов не выдают ошибки. И честно говоря не понимаю почему она не правильна.



  • @botovod '||' Оператор обычно называется логическим или. Если первый операнд имеет значение false, null, undefined, "" (пустая строка) или число 0, то он возвращает второй операнд. В противном случае он возвращает первый операнд.

    В данном случае у вас нет синтаксической ошибки, но истинность выражений рассматривается в том порядке, который вы указали.

    Выражение (0 || 0.05) вернет 0.05 (см первые 3 предложения)

    Затем (5-5) == 0.05, соответственно - это не верно. Ведь 0 никогда не будет равен 0.05. У вас ЛОГИЧЕСКАЯ ошибка.

    Советую почитать статьи и поизучать js.


Log in to reply