Разница между операторами "==" и "==="

1 июня 2023 г.
427
Разберёмся в чём разница между двумя операторами сравнения.
 
Оператор «==» означает абстрактное или нестрогое соответствие и сравнивает значения после их преобразования или приведения к одному типу (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, так как значения в этих примерах имеют разные типы.
Поделиться: