Értékek összehasonlítása logikai típussal JavaScriptben
Az előző példában az összehasonlításhoz a
=== operátort használtuk. Ebben az esetben a változónk
egyenlőségét hasonlította össze a true értékkel
mind érték, mind típus szerint.
Ehhez az összehasonláshoz használható a
== operátor is. Ha a test változóban
mindig a true vagy a false értékek egyike lesz,
akkor semmi sem fog változni:
let test = true; // ide vagy true-t, vagy false-t írunk
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
De ha a test változóba bármilyen érték kerülhet,
akkor minden sokkal bonyolultabbá válik.
Ilyenkor, ha a test változóban
nem logikai érték lesz, akkor az az érték
először logikai típusúra lesz konvertálva, és csak
ezután fog összehasonlításra kerülni.
Tegyük fel például, hogy a test változóban
az 1 szám lesz. Ebben az esetben először
logikai típusúra, azaz true értékre lesz konvertálva.
És ezután történik meg az összehasonlítás:
let test = 1;
if (test == true) {
console.log('+++'); // ez fog lefutni
} else {
console.log('---');
}
De például az 0 szám
false értékre konvertálódik.
És a feltételünk ennek eredményeképpen
kiírja a '---' szöveget:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // ez fog lefutni
}
Gyakorlatilag ez az összehasonlítás kifejezetten átírható a következő formába:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Emlékezzen vissza és írja le, mely értékek adnak
logikai típusúra konvertáláskor
false értéket.
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}