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