Skip to content

Latest commit

 

History

History
65 lines (41 loc) · 6.97 KB

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

File metadata and controls

65 lines (41 loc) · 6.97 KB

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

Операторы сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false.

Выражения сравнения всегда возвращают логические значения, которые широко применяются в инструкциях if, while или for для управления ходом исполнения программы.

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

Оператор Описание Пример Результат
== Равно 10 == 20 false
=== Строго равно (идентичность) "20" === 20 false
!= Не равно 10 != 20 true
!== Строго не равно 20! == 20 false
> Больше чем 20 > 10 true
>= Больше или равно 20 >= 10 true
< Меньше чем 20 < 10 false
<= Меньше или равно 20 <= 10 false

Равенство (==) и неравенство (!=)

Оба оператора принимают операнды любого типа и, если операнды равны, оператор равенства == возвращает true, а оператор неравенства != возвращает – false.

Получив операнды разных типов, эти операторы пытаются привести их к одному типу и сравнивают уже преобразованные значения.

При преобразовании типов операторы равенства == и неравенства != руководствуется следующими правилами:

-Если какой-либо операнд число или булево значение, то операнды преобразуются в числа, при этом true преобразуется в 1, а false преобразуется в 0.
-Если какой-либо операнд строка – второй преобразуются в строку.
-Если одно из значений представляет собой объект, а другое – число или строку, то объект преобразуется в элементарный тип.

При сравнении операндов также применяются свои правила:

-Если одно из значений равно null, а другое – undefined, то они равны.
-Значения null и undefined не преобразуются для сравнения ни в какие другие значения.
-Значение NaN считается не равным никакому другому значению, включая само себя. При его наличии оператор равенства всегда возвращает false, а оператор неравенства – true.
-Если оба операнда являются объектами, то они сравниваются, чтобы выяснить, один ли это объект. Если да, возвращается true, иначе – false.

Примечание: Значения null и undefined равны == друг другу и не равны ничему другому.

Строгое равенство (===) и строгое неравенство (!==)

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

Оператор идентичности === возвращает true, только если операнды равны без преобразования:

-Если оба операнда имеют примитивные типы и содержат одинаковые значения, они считаются равными.
-Два операнда считаются равными, если оба ссылаются на один и тот же объект. Если же они ссылаются на разные объекты, они не равны, даже если эти объекты имеют идентичные свойства.
-Оператор идентичности считает значение NaN не равным никакому другому значению, включая само себя. При его наличии оператор идентичности всегда возвращает false.

В противоположность оператору идентичности === оператор неидентичности !== возвращает true, если без преобразования операнды не равны.

На заметку: Выражение null == undefined истинно, потому что значения равны, но null === undefined ложно, потому что типы этих значений разные.

Операторы отношений: (>), (<), (>=), (<=)

Как работают операторы отношений «больше» >, «меньше» <, «больше или равно» >= и «меньше или равно» <= нам известно ещё из школьной математики. Каждый из этих операторов возвращает логическое значение (true или false).

Оператор больше > возвращает true, если значение левого операнда больше, чем значение правого операнда, в противном случае он возвращает false.

Оператор меньше < возвращает true, если значение левого операнда меньше, чем значение правого операнда, в противном случае он возвращает false.

Оператор больше или равно >= возвращает true, если значение левого операнда больше или равно, чем значение правого операнда, в противном случае он возвращает false.

Оператор меньше или равно <= возвращает true, если значение левого операнда меньше или равно, чем значение правого операнда, в противном случае он возвращает false.