Равенство по значению и типу в JavaScript
Пусть вы хотите сравнивать так, чтобы число в кавычках не было равно такому же числу без кавычек. Говоря другими словами, вы хотите сравнивать так, чтобы сравнение было не только по значению, но и по типу данных.
Для этого вместо оператора == следует
использовать оператор ===. В следующем
примере при сравнении строки '3' и
числа 3 условие будет ложным,
так как переменные, хотя и равны по значению,
но не равны по типу:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // сработает это
}
А вот при сравнении двух строк '3'
условие будет истинно:
if ('3' === '3') {
console.log('+++'); // сработает это
} else {
console.log('---');
}
Так же, как и при сравнении чисел:
if (3 === 3) {
console.log('+++'); // сработает это
} else {
console.log('---');
}
Разница между оператором == и оператором
=== проявляется именно тогда, когда
значения одинаковые, но разный тип данных.
В остальных случаях эти операторы работают
одинаково. К примеру, при сравнении разных
чисел, конечно же, выведется '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // сработает это
}
Не запуская код, определите, что выведется в консоль:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}