Compararea valorilor cu tipul boolean în JavaScript
În exemplul anterior am folosit pentru comparație
operatorul ===. În acest caz, variabila noastră
era comparată pentru egalitate cu true
atât ca valoare, cât și ca tip.
Pentru o astfel de comparație se poate folosi și
operatorul ==. Dacă în variabila test
va fi întotdeauna una dintre valorile true
sau false, atunci nimic nu se va schimba:
let test = true; // aici scriem fie true, fie false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Dar dacă în variabila test pot
apărea orice valori, atunci totul devine
mai complex.
În acest caz, dacă în variabila test
nu este o valoare booleană, atunci această valoare
va fi mai întâi convertită la boolean și abia
apoi va fi comparată.
Să presupunem, de exemplu, că în variabila test
se află numărul 1. În acest caz, el va fi mai întâi
convertit la tipul logic, adică
la true. Și apoi va fi efectuată comparația:
let test = 1;
if (test == true) {
console.log('+++'); // acesta se va executa
} else {
console.log('---');
}
Dar, de exemplu, numărul 0 se convertește
la false. Și condiția noastră, ca rezultat,
va afișa 'incorect':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // acesta se va executa
}
De fapt, o astfel de comparație poate fi rescrisă explicit în următoarea formă:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Amintiți-vă și scrieți care valori
la convertirea la tipul logic dau
false.
Fără a rula codul, determinați ce se va afișa în consolă:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Fără a rula codul, determinați ce se va afișa în consolă:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}