offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmCdCWB 119 of 503 menu

Сравнение значений с булевым типом в 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('---'); }
enru