Я понимаю, что использование "===" сравнивает тип, поэтому выполнение следующего кода приводит к "не равному", потому что он сравнивает числовой тип со строковым типом.
var a = 20;
var b = "20";
if (a === b) {
alert("They are equal");
} else {
alert("They are not equal");
}
Но я не понимаю, как с помощью «==» сравнивать только результаты значений в сообщении «Они равны».
var a = 20;
var b = "20";
if (a == b) {
alert("They are equal");
} else {
alert("They are not equal");
}
Как значения равны? Разве строка «20» не хранится как символы ASCII 50 и 48 (0110010 и 0110000 в двоичном формате), а 20 хранится как фактическое двоичное число 0010100?
РЕДАКТИРОВАТЬ: Спасибо всем! Я думаю, что все ответы великолепны и помогли мне понять это намного лучше.