Концепции JavaScript

Делаем правильный выбор, двойное равенство (==) против тройного равенства (===) в #JavaScript

(== vs ===)

В JavaScript проверка равенства выполняется двумя способами. Хотя всегда рекомендуется использовать тройное равенство (===) при проверке равенства, лучше знать, чем они отличаются друг от друга…

Оператор двойного равенства (==)

Здесь мы сравниваем только значения независимо от типа переменной. Если значения совпадают, он вернет true.

const x = 5;   //Number
const y = "5";  //String
console.log(x == y);    //true

Оператор тройного равенства (===)

Здесь мы проверяем как значение , так и тип переменной. Если значение совпадает, а тип — нет, возвращается false.

const x = 5;   //Number
const y = "5";  //String
console.log(x == y);    //true

Примечание.
Одиночное равенство ( =) — это оператор присваивания, который присваивает значение переменной. например. пусть х = 5;

Теперь посмотрим несколько интересных примеров,
спойлер, каждый раз вывод будет верным.

console.log("" == false);  //true
console.log(false == 0);   //true
console.log("" == 0);      //true

Если вы хотите, чтобы они были ложными, используйте тройное равенство

console.log("" === false);  //false
console.log(false === 0);   //false
console.log("" === 0);      //false

//Same for
console.log(true == 1);   // will give true
console.log(true === 1);   //but will give false as we are saying integer = boolean

"" :- Относится к пустой строке
false :- логическоезначение false
0:- число0

Но NaN, undefined, null никогда не бывают равными.

console.log(NaN == undefined);     //false
console.log(undefined == null);    //false
console.log( == NaN);              //false

Подробнее о undefined, null и NaN…