Оператор сравнения JavaScript '===' vs '=='

Опубликовано: 12 Января, 2023

В Javascript (ES6) существует четыре способа проверки равенства, которые перечислены ниже:

  • Использование оператора '=='
  • Использование оператора '==='
  • SameValueZero: используется в основном в наборах, картах и массивах.
  • SameValue: используется в другом месте

Теперь наша главная забота — узнать разницу между операторами '==' и '===', которые предоставляет javascript, хотя они выглядят одинаково, но они очень разные.

Оператор JavaScript '==': в Javascript оператор '==' также известен как оператор свободного равенства, который в основном используется для сравнения двух значений с обеих сторон, а затем возвращает значение true или false. Этот оператор проверяет равенство только после преобразования обоих значений в общий тип, т.е. приведение типов .

Примечание. Приведение типа означает, что два значения сравниваются только после попытки преобразовать их в один и тот же тип. Давайте посмотрим на все значения, в которых оператор '==' вернет true.

Example 1:

javascript




<script>
    // "==" operator
    console.log(21 == 21);
    console.log(21 == "21");
    console.log("food is love"=="food is love");
    console.log(true == 1);
    console.log(false == 0);
    console.log(null == undefined);
</script>

Вывод: в приведенном выше коде, когда мы сравниваем 21 с «21», javascript преобразует «21» в числовое значение 21, и, следовательно, мы получаем true, подобное происходит, когда мы пытаемся проверить, если «true == 1 ', в этом случае javascript в основном преобразует 1 в истинное значение, а затем сравнивает и возвращает логическое значение true. Случай (null == undefined) особенный, так как когда мы сравниваем эти значения, мы получаем истину, но не совсем понятно, почему? В javascript есть два типа значений: true или false

true
true
true
true
true
true


Истинный

  • '0'
  • 'false' // ложь, заключенная в строку.
  • []
  • {}
  • функция () {}

ЛОЖЬ

  • ” или “” // пустая строка
  • ЛОЖЬ
  • 0
  • нулевой
  • неопределенный
  • NaN // не число

Таким образом, и null, и undefined являются ложными значениями, и они представляют собой «пустое» значение или значение undefined в js, поэтому сравнение с оператором «==» возвращает true. Теперь давайте посмотрим на все значения, в которых оператор '==' вернет false.

Пример 2: В этом коде, когда мы сравниваем null с false, мы получаем false, поскольку null, будучи примитивным типом данных, никогда не может быть равен логическому значению, даже если они принадлежат к одной и той же группе false.

Выход:

false
false
false
false

Оператор JavaScript '===': также известный как оператор строгого равенства, он сравнивает как значение, так и тип, поэтому название «строгое равенство».

Пример 1: Давайте посмотрим на код, в котором оператор '===' возвращает значение true.

Выход:
true
true
true

Пример 2: Просто проверьте типы и значения с обеих сторон, а затем просто распечатайте логическое значение true или false. Некоторые примеры, когда он вернет false.

Выход:
false
false
false

Пожалуйста, прочтите статью Разница между двойным и тройным равенством в JavaScript, чтобы сравнить операторы '===' и '=='.