Споредување на вредности со булов тип во 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('---');
}