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:
let 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:
let 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':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // see käivitub
}
Tegelikult saab sellist võrdlust selgelt ümber kirjutada järgmisel kujul:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Tuletage meelde ja kirjutage, millised väärtused
tõeväärtustüübi teisendamisel annavad
false.
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}