В JavaScript вы встретите пять операторов, использующих знак равенства: =
, ==
, ===
, !=
и !==
. =
довольно прост, но различия между ==
и ===
и !=
и !==
(и когда их использовать) поначалу могут показаться немного туманными, но у каждого есть четкое и четкое применение, так что давайте углубимся!
Во-первых, краткое упоминание о одиночном равенстве=
, который является просто оператором присваивания. Вы будете использовать это, чтобы присвоить значение того, что находится справа, тому, что находится слева:
В этом примере я установил переменную mySnacks
равной массиву, включающему крендельки, яблоки и морковь. Так вот что.
== и === : Шашки равенства
Все операторы ==
и ===
проверяют равенство, но делают это в разной степени.
Оператор двойного равенства (==
) называется абстрактным или свободным сравнением, поскольку значения по обе стороны от оператора не обязательно должны быть идентичны, чтобы вернуть true
. На самом деле оператор работает с использованием так называемого приведения типов. Это означает, что два значения сравниваются только после попытки преобразовать их в общий тип.
Оператор тройного равенства (===
) называется оператором строгого сравнения, потому что и тип, и сравниваемое значение должны быть одинаковыми, чтобы вернуть true
.
Давайте рассмотрим эту концепцию на нескольких примерах:
Здесь мы приблизительно сравниваем число 50
со строкой '50'
. Из-за приведения типов они читаются как примерно одинаковые значения, поэтому было возвращено true
.
В этом примере мы строго сравниваем число 50
со строкой '50'
. Поскольку число и строка не являются одним и тем же типом данных, оно было возвращено как false
.
Здесь мы приблизительно сравниваем логические значения false
и 0
, оба из которых ложны, поэтому возвращается true
.
В приведенном выше примере мы строго сравниваем false
и 0
, оба ложные значения, но разные типы и значения, поэтому оно возвращается как false
.
!= и !==: средства проверки неравенства
Аналогично (но наоборот) операторам ==
и ===
операторы !=
и !==
проверяют неравенство.
Оператор нечеткого неравенства (!=
) возвращает значение true, если два сравниваемых значения приблизительно не равны друг другу. Это работает так же (но наоборот), как ==
в том смысле, что приведение типов используется для преобразования значений в общий тип перед их сравнением.
Оператор строгого неравенства (!==
) возвращает значение true, если два сравниваемых значения строго не равны друг другу.
Посмотрите эти примеры:
Поскольку 50
и 51
не равны друг другу, и мы строго сравниваем неравенство между этими значениями, эта функция возвращает true
.
В приведенном выше примере 50
строго сравнивается с самим собой, поэтому возвращается как false
, поскольку они не неравны друг другу.
Здесь мы приблизительно сравниваем число 50
со строкой '50'
. Поскольку используется приведение типов, эти значения преобразуются в общий тип (в данном случае строки), поэтому они фактически равны друг другу, поэтому проверка неравенства возвращает как false
.
Бонус: ознакомьтесь с этой удобной таблицей, если вам интересно узнать подробности о том, как работает приведение типов.
Закрытие
Я надеюсь, что этот краткий обзор операторов равенства и неравенства в JavaScript был вам полезен! Помните, что =
используется только для присвоения переменных, ==
используется, когда вы хотите неточно сравнить два значения/типа, и ===
используется, когда вы хотите строго сравнить два значения, !=
используется, когда вы хотите грубо сравнить неравенство между двумя значениями, и !==
используется, когда вы хотите строго сравнить неравенство между двумя значениями.