É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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet test = 1;

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

Emlékezzen vissza és írja le, mely értékek adnak logikai típusúra konvertáláskor false értéket.

Задание 2

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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

Kód futtatása nélkül határozza meg, mi jelenik meg a konzolon:

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