Уроки по веб-разработке

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

В JS есть несколько операторов сравнения:

Операторы сравнения приводят выражение к логическому типу: true или false. Часто операторы сравнения используются в условных конструкция: if…else, тернарный оператор и др.

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

Разница в том, что обычное равно сравнивает только значение, а тройное равно (строгое) сравнивает еще и тип данных.

При использовании операторов сравнения с разными типами данных, JS приводит их к числу и затем выполняет сравнение.

Рассмотрим следующий пример:

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