Содержание
В JS есть несколько операторов сравнения:
==
— равно (без сравнения типа)===
— строгое равно (сравнивается и тип и значение)>
— больше чем…<
— меньше чем…>=
— больше или равно<=
— меньше или равно!=
— не равно
Операторы сравнения приводят выражение к логическому типу: true
или false
. Часто операторы сравнения используются в условных конструкция: if…else, тернарный оператор и др.
Равно (==) и тройное равно (===)
Разница в том, что обычное равно сравнивает только значение, а тройное равно (строгое) сравнивает еще и тип данных.
Рассмотрим следующий пример:
5 == '5' // true - оба значения будут преобразованы в число
5 === '5' // false - значение справа не будет преобразовано в число, т.к. мы хотим сделать сравнение значения и типа данных
true == 1 // true
true === 1 // false
Если вы не хотите неожиданностей в своем коде и вы знаете какой тип данных у вас должен быть, лучше использовать строгое сравнение.
Не равно (!=) и строгое не равно (!==)
Данные операторы выполняют противоположную проверку от двух предыдущих. Что если нам нужно просто убедиться, что наша переменная не равна одному какому-то значению, тогда нам не нужно будет перечислять все доступные варианты.
Допустим, у нас есть есть пользователь и у него есть поле role, где может быть несколько разных ролей (читатель, редактор, админ, суперадмин), а мы хотим чтобы на сайте для админов не отображалась реклама (текст, какой-то блок и т.д.):
const user = { name: 'John', role: 'admin', ... }
if (user.role !== 'admin') { //... показывать рекламу }
Вот так просто мы можем проверить является ли пользователь админом.
Также как и предыдущие операторы, оператор !=
сравнивает только значение, а оператор !==
— значение и тип данных
5 != '5' // false - оба значения будут приведены к строке и затем будут сравниваться
5 !== '5' // true - у одного операнда тип число, у второго строка. Они не равны
true != 1 // false
Больше (>) и меньше (<)
Данные операторы работают как и в математике:
5 > 5 // false
6 > 5 // true
4 > 5 // false
5 < 5 // false
6 < 5 // false
4 < 5 // true
Больше или равно (>=), меньше или равно (<=)
Эти операторы также очень просты в использовании, они нужны на случай если мы хотим сделать проверку операндов — больше/менньше они или может быть равны:
5 >= 5 // true
6 >= 5 // true
4 >= 5 // false
5 <= 5 // true
6 <= 5 // false
4 <= 5 // true