Поређење вредности са логичким (буловим) типом у JavaScript-у

У претходном примеру користили смо за поређење оператор ===. У том случају наша променљива се поредила на једнакост са true и по вредности и по типу.

За такво поређење се може користити и оператор ==. Ако у променљивој test увек буде једна од вредности true или false, онда се ништа неће променити:

javascriptlet test = true; // овде пишемо или true, или false

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

Али ако у променљиву test могу да уђу било које вредности, онда све постаје много сложеније.

У том случају, ако у променљивој test не буде логичка вредност, онда ће та вредност прво бити претворена у логичку и тек онда ће бити упоређивана.

Нека, на пример, у променљивој test буде број 1. У том случају ће се прво претворити у логички тип, односно у true. И онда ће се извршити поређење:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // ово ће се извршити
} else {
  console.log('---');
}

Али, на пример, број 0 се претвара у false. И наш услов ће као резултат исписати 'неверно':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // ово ће се извршити
}

Заправо такво поређење се може експлицитно преписати у следећем облику:

javascriptlet test = 1;

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

Потсетите се и напишите, које вредности при претварању у логички тип дају false.

Задание 2

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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

Без покретања кода, одредите шта ће се исписати у конзолу:

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