Upoređivanje vrednosti sa bulovskim tipom u JavaScript-u

U prethodnom primeru koristili smo za upoređivanje operator ===. U ovom slučaju naša promenljiva je upoređivana na jednakost sa true i po vrednosti i po tipu.

Za takvo upoređivanje se može koristiti i operator ==. Ako u promenljivoj test uvek bude jedna od vrednosti true ili false, onda se ništa neće promeniti:

javascriptlet test = true; // ovde pišemo ili true, ili false

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

A ako u promenljivu test mogu upasti bilo koje vrednosti, onda sve postaje mnogo komplikovanije.

U tom slučaju, ako u promenljivoj test bude ne bulovska vrednost, onda će ta vrednost prvo biti pretvorena u bulovsku i tek zatim će biti upoređivana.

Neka, na primer, u promenljivoj test bude broj 1. U ovom slučaju on će prvo biti pretvoren u logički tip, odnosno u true. I zatim će biti izvršeno upoređivanje:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // ovo će se izvršiti
} else {
  console.log('---');
}

A, na primer, broj 0 se pretvara u false. I naš uslov će kao rezultat ispisati 'neispravno':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // ovo će se izvršiti
}

Zapravo, takvo upoređivanje se može eksplicitno prepisati u sledećem obliku:

javascriptlet test = 1;

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

Prisetite se i napišite koje vrednosti prilikom pretvaranja u logički tip daju false.

Задание 2

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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

Bez pokretanja koda, odredite šta će biti ispisano u konzoli:

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