Концепции 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…