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:
let 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:
let 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':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // suveiks šis
}
Tiesą sakant, tokį palyginimą galima aiškiai perrašyti tokia forma:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Prisiminkite ir užrašykite, kurios reikšmės,
konvertuojant į loginį tipą, duoda
false.
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Nepaleisdami kodo, nustatykite, kas bus atspausdinta konsolėje:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}