Параўнанне значэнняў з булевым тыпам у JavaScript

У папярэднім прыкладзе мы выкарыстоўвалі для параўнання аператар ===. У гэтым выпадку наша зменная параўноўвалася на роўнасць true як па значэнні, так і па тыпе.

Для такога параўнання можна выкарыстоўваць і аператар ==. Калі ў зменнай test заўсёды будзе адно з значэнняў true ці false, то нішто і не зменіцца:

javascriptlet test = true; // тут пішам або true, або false

if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}

А вось калі ў зменную test могуць трапляць любыя значэнні, то ўсё становіцца нашмат складаней.

У такім выпадку, калі ў зменнай test будзе не булева значэнне, то гэта значэнне спачатку будзе пераўтворана да булева і толькі потым будзе параўноўвацца.

Хай, напрыклад, у зменнай test будзе лік 1. У гэтым выпадку яно спачатку пераўтворыцца да лагічнага тыпу, гэта значыць да true. І потым будзе выканана параўнанне:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // спрацуе гэта
} else {
  console.log('---');
}

А вось, напрыклад, лік 0 пераўтворыцца да false. І наша ўмова ў выніку выведе 'неверна':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // спрацуе гэта
}

Фактычна такое параўнанне можна явна перапісаць у наступным выглядзе:

javascriptlet test = 1;

if (Boolean(test) == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Успомніце і напішыце, якія значэнні пры прывядзенні да лагічнага тыпу даюць false.

Задание 2

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = 1;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = 0;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = 1;
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = 1;
    
if (test != true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 6

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = '';
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 7

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 8

Не запускаючы код, вызначыце, што выведзецца ў кансоль:

javascriptlet test = 3 * 'a';
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}