Arvojen vertailu totuusarvojen kanssa JavaScriptissä
Edellisessä esimerkissä käytimme vertailuun
operaattoria ===. Tässä tapauksessa muuttujamme
verrattiin yhtäsuuruuteen true:n kanssa
sekä arvon että tyypin suhteen.
Tällaiseen vertailuun voidaan käyttää myös
operaattoria ==. Jos muuttujassa test
on aina joko arvo true
tai false, niin mikään ei muutu:
let test = true; // kirjoitetaan tähän joko true tai false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Mutta jos muuttujaan test voivat
päästä mitkä tahansa arvot, niin kaikki muuttuu
paljon monimutkaisemmaksi.
Tällöin, jos muuttujassa test
ei ole totuusarvoa, niin tämä arvo
muunnetaan ensin totuusarvoksi ja vasta
sitten verrataan.
Oletetaan esimerkiksi, että muuttujassa test
on luku 1. Tässä tapauksessa se muunnetaan ensin
logiseksi tyypiksi, eli
arvoksi true. Ja sitten suoritetaan vertailu:
let test = 1;
if (test == true) {
console.log('+++'); // tämä toimii
} else {
console.log('---');
}
Mutta esimerkiksi luku 0 muunnetaan
arvoksi false. Ja ehtomme tuloksena
tulostaa 'epätosi':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // tämä toimii
}
Käytännössä tällainen vertailu voidaan nimenomaisesti kirjoittaa uudelleen seuraavassa muodossa:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Muistakaamme ja kirjoitetaan, mitkä arvot
logiseksi tyypiksi muunnettuna antavat
false:n.
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}