JavaScript - Операторы сравнения

Здравствуйте, будущие маги JavaScript! Сегодня мы окунемся в магический мир операторов сравнения. Не волнуйтесь, если вы еще ни разу не писали строку кода - я буду вашим дружественным проводником на этом захватывающем пути. Так что возьмите свои посохи (я имею в виду, клавиатуры), и давайте начнем!

JavaScript - Comparison Operators

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

Операторы сравнения resemble судьей в мире программирования. Они смотрят на два значения и решают, как они относятся друг к другу. Равны ли они? Одно ли из них больше другого? Эти операторы помогают нам принимать решения в нашем коде, так же, как мы принимаем решения в реальной жизни.

Давайте посмотрим на все операторы сравнения, которые мы сегодня рассмотрим:

Оператор Название Пример
== Равенство x == y
!= Неравенство x != y
=== Строгое равенство x === y
!== Строгое неравенство x !== y
> Больше чем x > y
>= Больше или равно x >= y
< Меньше чем x < y
<= Меньше или равно x <= y

Как выполняется сравнение?

Прежде чем мы углубимся в каждый оператор, давайте поймем, как JavaScript сравнивает значения. Это не так уж отличается от того, как мы сравниваем вещи в реальной жизни!

  1. Если мы сравниваем числа, это很简单. JavaScript проверяет, какое число больше.
  2. Для строк JavaScript сравнивает их символ за символом, основываясь на их значениях Unicode.
  3. Если мы сравниваем разные типы (например, число и строку), JavaScript обычно пытается преобразовать один тип в другой перед сравнением.

Теперь давайте рассмотрим каждый оператор подробнее.

Оператор равенства (==) в JavaScript

Оператор равенства (==) проверяет, равны ли два значения, но он гибок. Он может преобразовывать типы перед сравнением. Давайте рассмотрим несколько примеров:

console.log(5 == 5);     // true
console.log(5 == "5");   // true
console.log(true == 1);  // true
console.log(null == undefined);  // true

В первом примере ясно, почему мы получаем true. Во втором, JavaScript преобразует строку "5" в число перед сравнением. Третий пример может удивить - JavaScript считает true как 1 и false как 0. Последний пример показывает, что null и undefined считаются равными с оператором ==.

Оператор неравенства (!=) в JavaScript

Оператор неравенства (!=) resembles反面 оператора ==. Он проверяет, что два значения не равны.

console.log(5 != 6);     // true
console.log(5 != "5");   // false
console.log(true != 1);  // false

Как и ==, он также выполняет преобразование типов перед сравнением.

Строгий оператор равенства (===) в JavaScript

Теперь познакомимся с строгим оператором равенства (===). Этот оператор resemblesстрогий старший брат оператора ==. Он не только проверяет значение, но и обеспечивает одинаковые типы.

console.log(5 === 5);     // true
console.log(5 === "5");   // false
console.log(true === 1);  // false
console.log(null === undefined);  // false

Смотрите, как результаты отличаются от ==? Строгий оператор равенства не выполняет никакого преобразования типов.

Оператор.strict неравенства (!==) в JavaScript

Оператор strict неравенства (!==) resembles反面 оператора ===. Он проверяет, что два значения не равны по значению или типу.

console.log(5 !== 6);     // true
console.log(5 !== "5");   // true
console.log(true !== 1);  // true

Оператор больше (>) в JavaScript

Оператор больше (>) проверяет, больше ли левое значение правого.

console.log(10 > 5);   // true
console.log(5 > 10);   // false
console.log(10 > 10);  // false
console.log("b" > "a");  // true (сравнивает значения Unicode)

помните, что при сравнении строк, это основано на их значениях Unicode, а не на их алфавитном порядке!

Оператор больше или равно (>=) в JavaScript

Оператор больше или равно (>=) проверяет, больше ли левое значение правого или они равны.

console.log(10 >= 5);   // true
console.log(10 >= 10);  // true
console.log(5 >= 10);   // false

Оператор меньше (<) в JavaScript

Оператор меньше (<) проверяет, меньше ли левое значение правого.

console.log(5 < 10);   // true
console.log(10 < 5);   // false
console.log(10 < 10);  // false

Оператор меньше или равно (<=) в JavaScript

Оператор меньше или равно (<=) проверяет, меньше ли левое значение правого или они равны.

console.log(5 <= 10);   // true
console.log(10 <= 10);  // true
console.log(10 <= 5);   // false

Сравнение null, undefined и NaN

Сравнение специальных значений, таких как null, undefined и NaN, может быть сложным. Давайте рассмотрим несколько примеров:

console.log(null == undefined);  // true
console.log(null === undefined);  // false
console.log(NaN == NaN);  // false
console.log(NaN === NaN);  // false
console.log(null > 0);  // false
console.log(null == 0);  // false
console.log(null >= 0);  // true

Поведение с null и undefined может быть неожиданным. NaN не равен ничему, даже самому себе! А null при сравнении преобразуется в 0, но не при проверке равенства.

И вот мы и добрались до этого, друзья! Мы совершили путешествие по земле операторов сравнения JavaScript. Помните, что практика makes perfect, так что не бойтесь экспериментировать с этими операторами в вашем собственном коде. Счастливого кодирования!

Credits: Image by storyset