Операторы сравнения
Описание, примеры
Операндами операторов сравнения могут быть численные и строковые значения. Строки сравниваются, исходя из стандартного лексикографического порядка при использовании Unicode.
Яваскрипт допускает как строгое сравнение, так и сравнение с приведением типов. Для строгого сравнения оба операнда должны иметь одинаковый тип и:
- Две строки строго равны, если состоят из одинаковой последовательности символов
- Два числа строго равны, если равны в обычном смысле слова.
+0строго равен-0. NaNстрого не равно ничему, включаяNaN- Два булевых операнда строго равны, если они оба
trueилиfalse - Два операнда-объекта строго равны, если являются ссылками на один и тот же общий объект
NullиUndefinedравны==, но не строго равны===
Следующая таблица описывает операторы сравнения:
| Оператор | Описание | Примеры, возвращающие true при var1=3, var2=4 |
|---|---|---|
Равно (==) |
Если два операнда не одного типа, javascript преобразовывает типы и сравнивает строго. Если какой-либо операнд - число или булево значение, то операнды преобразуются в числа; если какой-либо операнд строка - второй преобразуются в строку |
|
Не равно (!=) |
Возвращает true, если операнды не равны. Если операнды имеют разный тип, javascript преобразовывает. |
|
Строго равно (===) |
Возвращает true, если операнды строго равны (см. выше), без преобразования типов. |
|
Строго не равно (!==) |
Возвращает true, если операнды не являются строго равными (см. выше) или имеют разные типы. |
|
Больше (>) |
Возвращает true, если левый операнд больше правого. |
|
Больше или равно (>=) |
Возвращает true, если левый операнд больше правого или равен ему. |
|
Меньше (<) |
Возвращает true, если левый операнд меньше правого. |
|
Меньше или равно (<=) |
Возвращает true, если левый операнд меньше правого или равен ему. |
|
Использование операторов сравнения
Стандартные операторы равенства (== и !=) сравнивают два операнда безотносительно их типа. Строгое равенство (=== и !==) производит сравнения операндов одинакового типа. Используйте строгое равенство, если операнды должны иметь одинаковый тип и значение. В ином случае, используйте обычные операторы равенства, которые позволяют проверить равенство операндов, даже если они разного типа.
При конвертации типов яваскрипт преобразует String, Number, Boolean и Object следующим образом:
- При сравнении числа и строки, строка преобразуется в числовое
значение. Яваскрипт при этом получает значение числа из строкового
литерала:
"123" == 123. - Если один из операндов - булевый, то он преобразуется к 1, если он
trueи к +0, если онfalse - Если объект сравнивается с числом или строкой, яваскрипт пытается
получить соответствующее значение для объекта. Он преобразует объект к
элементарному значению, строке или числу, используя методы
valueOfиtoString. Если преобразовать объект не удается - генерируется ошибка выполнения.
