Confronto di valori con il tipo booleano in JavaScript

Nell'esempio precedente abbiamo utilizzato per il confronto l'operatore ===. In questo caso, la nostra variabile veniva confrontata per l'uguaglianza con true sia per valore che per tipo.

Per un tale confronto si può usare anche l'operatore ==. Se nella variabile test ci sarà sempre uno dei valori true o false, allora nulla cambierà:

javascriptlet test = true; // qui scriviamo o true, o false

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

Ma se nella variabile test possono essere presenti valori qualsiasi, allora tutto diventa molto più complicato.

In tal caso, se nella variabile test non ci sarà un valore booleano, allora questo valore verrà prima convertito in booleano e solo dopodiché verrà confrontato.

Supponiamo, ad esempio, che nella variabile test ci sia il numero 1. In questo caso, verrà prima convertito al tipo logico, cioè a true. E poi verrà eseguito il confronto:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // questo verrà eseguito
} else {
  console.log('---');
}

Ma, ad esempio, il numero 0 si converte in false. E la nostra condizione di conseguenza restituirà 'non corretto':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // questo verrà eseguito
}

In pratica, un tale confronto può essere esplicitamente riscritto nella forma seguente:

javascriptlet test = 1;

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

Ricordate e scrivete quali valori, quando convertiti al tipo logico, restituiscono false.

Задание 2

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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

Senza eseguire il codice, determinate cosa verrà stampato in console:

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