Sammenligning av verdier med boolsk type i JavaScript

I forrige eksempel brukte vi for sammenligning operatoren ===. I dette tilfellet ble variabelen vår sammenlignet med likhet true både på verdi og type.

For en slik sammenligning kan man også bruke operatoren ==. Hvis variabelen test alltid vil være én av verdiene true eller false, så vil ingenting forandres:

javascriptlet test = true; // skriver enten true eller false her

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

Men hvis variabelen test kan inneholde alle mulige verdier, så blir alt mye mer komplisert.

I et slikt tilfelle, hvis variabelen test ikke har en boolsk verdi, så vil denne verdien først bli konvertert til en boolsk verdi og først deretter bli sammenlignet.

La for eksempel variabelen test inneholde tallet 1. I dette tilfellet vil det først blitt konvertert til en boolsk type, altså til true. Og deretter vil sammenligningen bli utført:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // dette vil kjøre
} else {
  console.log('---');
}

Men for eksempel vil tallet 0 bli konvertert til false. Og vår betingelse vil som et resultat skrive ut '---':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // dette vil kjøre
}

I praksis kan en slik sammenligning eksplisitt omskrives på følgende måte:

javascriptlet test = 1;

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

Husk og skriv ned, hvilke verdier som ved konvertering til en boolsk type gir false.

Задание 2

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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

Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:

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