Сравнение значений с булевым типом в JavaScript
В предыдущем примере мы использовали для сравнения
оператор ===. В этом случае наша переменная
сравнивалась на равенство true как
по значению, так и по типу.
Для такого сравнения можно использовать и
оператор ==. Если в переменной test
всегда будет одно из значений true
или false, то ничего и не изменится:
let test = true; // тут пишем или true, или false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
А вот если в переменную test могут
попадать любые значения, то все становится
намного сложнее.
В таком случае, если в переменной test
будет не булево значение, то это значение
вначале будет преобразовано к булеву и только
затем будет сравниваться.
Пусть, например, в переменной test
будет число 1. В этом случае оно вначале
преобразуется к логическому типу, то есть
к true. И затем будет выполнено сравнение:
let test = 1;
if (test == true) {
console.log('+++'); // сработает это
} else {
console.log('---');
}
А вот, к примеру, число 0 преобразуется
к false. И наше условие в результате
выведет 'неверно':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // сработает это
}
Фактически такое сравнение можно явно переписать в следующем виде:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Вспомните и напишите, какие значения при
приведении к логическому типу дают
false.
Не запуская код, определите, что выведется в консоль:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Не запуская код, определите, что выведется в консоль:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}