Reikšmių palyginimas su boolean tipu JavaScript

Ankstesniame pavyzdyje mes naudojome palyginimui operatorių ===. Šiuo atveju mūsų kintamasis buvo lyginamas su true lygybe tiek pagal reikšmę, tiek pagal tipą.

Tokiam palyginimui galima naudoti ir operatorių ==. Jei kintamajame test visada bus viena iš reikšmių true arba false, tai niekas nepasikeis:

javascriptlet test = true; // čia rašome arba true, arba false

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

Bet jei į kintamąjį test gali patekti bet kokios reikšmės, tai viskas tampa daug sudėtingiau.

Tokiu atveju, jei kintamajame test bus ne boolean reikšmė, tai ši reikšmė pirmiausia bus konvertuojama į boolean ir tik tada bus lyginama.

Tarkime, pavyzdžiui, kintamajame test bus skaičius 1. Šiuo atveju jis pirmiausia bus konvertuojamas į loginį tipą, tai yra į true. Ir tada bus atliktas palyginimas:

javascriptlet test = 1;

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

O, pavyzdžiui, skaičius 0 konvertuojasi į false. Ir mūsų sąlyga dėl to atspausdins 'neatitinka':

javascriptlet test = 0;

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

Tiesą sakant, tokį palyginimą galima aiškiai perrašyti tokia forma:

javascriptlet test = 1;

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

Prisiminkite ir užrašykite, kurios reikšmės, konvertuojant į loginį tipą, duoda false.

Задание 2

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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

Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:

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