Эти операторы принимают два значения и возвращают логическое значение:
==проверяет равенство!=проверяет неравенство===проверяет строгое равенство! ==проверяет строгое неравенство
Давайте поговорим о том, что мы подразумеваем под строгим . Без строгой проверки второй операнд преобразуется в тип первого перед выполнением сравнения. Строгий предотвращает это.
Примеры:
const a = true a == true //true a === true //true 1 == 1 //true 1 == '1' //true 1 === 1 //true 1 === '1' //false
Вы не можете проверять объекты на равенство: два объекта никогда не равны друг другу. Единственный случай, когда проверка может быть верной, – это если две переменные ссылаются на один и тот же объект.
Некоторые особенности, о которых следует знать: NaN всегда отличается от NaN .
NaN == NaN //false
ноль и неопределенные значения равны при сравнении в нестрогом режиме:
null == undefined //true null === undefined //false
Оригинал: “https://flaviocopes.com/javascript-equality-operators/”