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:
javascriptlet 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:
javascriptlet 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':
javascriptlet 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:
javascriptlet 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:
javascriptlet test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Määritä suorittamatta koodia, mitä tulostetaan konsoliin:
javascriptlet test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}