Онлайн-курсы по JavaScript
Выбрать другой урок из курса
Обсуждение
Теория урока

Выражения отношений в JavaScript

Знания, полученные в этом и последующих уроках, нужны для понимания четвертой главы этого сайта. В этих уроках описаны операторы отношения: равно, не равно, больше, меньше и так далее. Выражения отношений всегда возвращают true (истина) или false (ложь). В основном применяются эти отношения в конструкции if, о который вы узнаете очень подробно в следующей главе.

Операторы равенства и неравенства

Ранее вы уже знакомились с операторами == и ===, которые проверяют два значения на идентичность. Оба оператора принимают любые операнды и в случае идентичности возвращают true, а если не идентичны, то false. Различие между === и == в том, что === более строго сравнивает (типы должны совпадать), а == не строго (возможны преобразования). Не путайте =, == и ===. Первый = называется «присвоение», второй == «равно», третий === «идентично».

Операторам == и === есть противоположные != и !==, которые выполняют проверку: «не равно», «не идентично». Если два операнда равны, то будет возвращено значение false. Далее посмотрим на таблицу, чем руководствуется оператор ===, чтобы проверить на идентичность:

  • Если оба операнда null или undefined, то они идентичны
  • Если операнды имеют различные типы, то они не идентичны
  • Если оба операнда true или false, то они идентичны
  • Если один из операндов имеет значение NaN
  • Если оба операнда ссылаются на один и тот же объект, массив или функцию, то они идентичны

Оператор == похож на оператор ===, но менее строг, следовательно, имеет другие правила, но схожие с ===. Если значения операндов имеют разные типы, то JavaScript пытается преобразовать типы.

  • Если операнды имеют одинаковый тип, то они проверяются на идентичность. Если они идентичны, то они равны.
  • Если одно значение является строкой, а второй число, то строка будет преобразовываться в число и после будет выполнено сравнение с преобразованной строкой
  • Если одно значение null, а второе undefined, то они равны
  • true преобразоывается в 1, а false в 0 и после выполняется сравнение с другими операндами
Пример 1
"0" == false    /* -> равны */
"0" === false   /* -> не идентичны */
"0" === "0"     /* -> идентичны */
"0" === 0       /* -> не идентичны */
"0" == 0        /* -> равны */

Операторы сравнения

Есть четыре оператора сравнения:

  • Меньше (<): оператор возвращает true, если первый операнд меньше, чем второй операнд; иначе возвращает false
  • Больше (>): оператор возвращает true, если первый операнд больше, чем второй операнд; иначе возвращает false
  • Меньше или равно (<=): оператор возвращает true, если первый операнд меньше или равен второму операнду; иначе возвращает false
  • Больше или равно (>=): оператор возвращает true, если первый операнд больше или равен второму операнду; иначе возвращает false

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

Пример 2
1 <= 1    /* -> истина */
1 <= 2    /* -> истина */
1 >= 2    /* -> ложь */
<
×
>
Не публикуйте свой код прямо в комментариях. Во-первых, он плохо отображается. Во-вторых, он может содержать для кого-то «спойлеры», т.е. ответы на практику. Воспользуйтесь специальными сервисами: cssdeck.com или jsfiddle.net.
Комментарии, содержащие код (пару строк не считается), будут безжалостно удаляться.