Когда-то видел одну статью, и суть была в том, что разбирали данный пример:
a == 1 && a == 2 && a == 3 // true
Вот такой вот интересный код, который возвращал
true
, и если не знать как работает
==
, можно было бы подумать, что это некоторое шаманство. Суть в том, что
==
преобразует типы (а также вызывает
valueOf
). Зная правило с
valueOf
, переменная
a
была равна следующему:
const a = {
value: 1,
valueOf() {
return this.value++;
}
};
Так что вывод такой - всегда используйте
===
(
ну или почти всегда).