Primerjava vrednosti z logičnim tipom v JavaScript

V prejšnjem primeru smo za primerjavo uporabili operator ===. V tem primeru se naša spremenljivka primerja z true glede enakosti tako po vrednosti kot po tipu.

Za takšno primerjavo lahko uporabimo tudi operator ==. Če bo v spremenljivki test vedno ena od vrednosti true ali false, se nič ne spremeni:

javascriptlet test = true; // tukaj napišemo true ali false

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

Če pa lahko v spremenljivko test pristanejo poljubne vrednosti, potem vse postane veliko bolj zapleteno.

V tem primeru, če v spremenljivki test ni logične vrednosti, bo ta vrednost najprej pretvorjena v logično in šele nato primerjana.

Recimo, da je v spremenljivki test število 1. V tem primeru se bo najprej pretvorilo v logični tip, torej v true. In nato bo izvedena primerjava:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // to se bo izvedlo
} else {
  console.log('---');
}

Po drugi strani pa se bo na primer število 0 pretvorilo v false. In naš pogoj bo kot rezultat izpisal 'neverno':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // to se bo izvedlo
}

Pravzaprav lahko takšno primerjavo eksplicitno prepišemo v naslednjo obliko:

javascriptlet test = 1;

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

Spomnite se in napišite, katere vrednosti pri pretvorbi v logični tip dajejo false.

Задание 2

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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

Brez zagon kode določite, kaj se bo izpisalo v konzolo:

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