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