Väärtuste võrdlemine tõeväärtustüübiga JavaScriptis

Eelmises näites kasutasime võrdlemiseks operaatorit ===. Sel juhul võrreldakse meie muutujat võrdsusega true nii väärtuse kui ka tüübi poolest.

Selliseks võrdlemiseks saab kasutada ka operaatorit ==. Kui muutujas test on alati kas väärtus true või false, siis midagi ei muutu:

javascriptlet test = true; // siia kirjutame kas true või false

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

Kuid kui muutujasse test võivad sattuda suvalised väärtused, siis muutub kõik palju keerulisemaks.

Sel juhul, kui muutujas test ei ole tõeväärtus, teisendatakse see väärtus kõigepealt tõeväärtuseks ja alles seejärel võrreldakse.

Oletame, et muutujas test on number 1. Sel juhul teisendatakse see kõigepealt tõeväärtustüübiks, st väärtuseks true. Ja seejärel tehakse võrdlus:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // see käivitub
} else {
  console.log('---');
}

Kuid näiteks number 0 teisendub väärtuseks false. Ja meie tingimus väljastab tulemusena 'vale':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // see käivitub
}

Tegelikult saab sellist võrdlust selgelt ümber kirjutada järgmisel kujul:

javascriptlet test = 1;

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

Tuletage meelde ja kirjutage, millised väärtused tõeväärtustüübi teisendamisel annavad false.

Задание 2

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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

Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:

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