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('---');
}
Tuletage meelde ja kirjutage, millised väärtused
tõeväärtustüübi teisendamisel annavad
false.
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määrake, ilma koodi käivitamata, mis väljundatakse konsooli:
javascriptlet test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}