Операндами операторов сравнения могут быть численные и строковые значения. Строки сравниваются исходя из стандартного лексикографического порядка при использовании Unicode.
Операторы сравнения описаны в таблице.
Оператор | Описание | Примеры, возвращающие true при x=3, y=4 |
Равно (==) | Если два операнда не одного типа, JavaScript преобразовывает и сравнивает их. | 3 == x |
Не равно (!=) | Возвращает true, если операнды не равны, сравнивает с преобразованием типов. | x != 4 |
Строго равно (===) | Возвращает true, если операнды строго равны, без преобразования типов. | 3 === x |
Строго не равно (!==) | Возвращает true, если операнды не являются строго равными или имеют разные типы. | y !== 3 |
Больше (>) | Возвращает true, если левый операнд больше правого. | y > x |
Больше или равно (>=) | Возвращает true, если левый операнд больше правого или равен ему. | y >= x |
Меньше (<) | Возвращает true, если левый операнд меньше правого. | x < y |
Меньше или равно (<=) | Возвращает true, если левый операнд меньше правого или равен ему. | x <= y |
Комментарии
JavaScript допускает как строгое сравнение, так и сравнение с приведением типов. Для строгого сравнения оба операнда должны иметь одинаковый тип.
Особенности сравнений:
- Две строки строго равны, если имеют одинаковую последовательность символов;
- Два числа строго равны, если равны в обычном смысле слова. +0 строго равен -0;
- NaN строго не равно ничему, включая NaN;
- Два булевых операнда строго равны, если они оба true или false;
- Два операнда-объекта строго равны, если являются ссылками на один и тот же общий объект;
- Null и Undefined равны ==, но не строго равны ===.