Arvo- ja tyyppiyhtäläisyys JavaScriptissä
Oletetaan, että haluat vertailla siten, että numero lainausmerkeissä ei ole yhtä suuri kuin sama numero ilman lainausmerkkejä. Toisin sanoen haluat vertailla siten, että vertailu ei ole pelkästään arvon perusteella, vaan myös tietotyypin perusteella.
Tätä varten operaattorin == sijasta
tulee käyttää operaattoria ===. Seuraavassa
esimerkissä merkkijonon '3' ja
luvun 3 vertailussa ehto on epätosi,
sillä muuttujat, vaikka ne ovatkin yhtä suuria arvoltaan,
eivät ole yhtä suuria tyypiltään:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // tämä suoritetaan
}
Mutta kahden merkkijonon '3'
vertailussa ehto on tosi:
if ('3' === '3') {
console.log('+++'); // tämä suoritetaan
} else {
console.log('---');
}
Sama pätee lukujen vertailussa:
if (3 === 3) {
console.log('+++'); // tämä suoritetaan
} else {
console.log('---');
}
Ero operaattorin == ja operaattorin
=== välillä ilmenee juuri silloin, kun
arvot ovat samat, mutta tietotyyppi on eri.
Muissa tapauksissa nämä operaattorit toimivat
samalla tavalla. Esimerkiksi eri lukujen
vertailussa tulostuu tietysti '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // tämä suoritetaan
}
Määritä käynnistämättä koodia, mitä tulostuu konsoliin:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Määritä käynnistämättä koodia, mitä tulostuu konsoliin:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Määritä käynnistämättä koodia, mitä tulostuu konsoliin:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Määritä käynnistämättä koodia, mitä tulostuu konsoliin:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Määritä käynnistämättä koodia, mitä tulostuu konsoliin:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}