Разница между операторами "==" и "==="
1 июня 2023 г.
451
Разберёмся в чём разница между двумя операторами сравнения.
Оператор «==» означает абстрактное или нестрогое соответствие и сравнивает значения после их преобразования или приведения к одному типу (type coercion). При сравнении оператор "==" производит так называемое неявное сравнение и выполняет отдельные операции перед сравнением двух значений.
Оператор «===» в свою очередь означает строгое соответствие, т.е. сравнивает без преобразования.
Сравним x и y, у нас получается следующий набор сравнений:
x |
y |
x == y |
2 |
2 |
true |
1 |
'1' |
true |
null |
undefined |
true |
0 |
false |
true |
'1,2' |
[1,2] |
true |
'[object Object]' |
{} |
true |
Таким образом, при сравнении двух значений оператор сравнения всегда возвращает true.
x |
y |
x === y |
2 |
2 |
true |
1 |
'1' |
false |
null |
undefined |
false |
0 |
false |
false |
'1,2' |
[1,2] |
false |
'[object Object]' |
{} |
false |
При использовании оператора «===» все вышеприведенные примеры, за исключением первого, вернут false, так как значения в этих примерах имеют разные типы.