Väärtuse ja tüübi võrdsus JavaScriptis
Oletame, et soovite võrrelda nii, et number jutumärkides ei oleks võrdne samale arvule ilma jutumärkideta. Teisisõnu soovite võrrelda nii, et võrdlus ei oleks ainult väärtuse, vaid ka andmetüübi alusel.
Selleks tuleb operaatori == asemel
kasutada operaatorit ===. Järgmises
näites stringi '3' ja
arvu 3 võrdlemisel on tingimus väär,
kuna muutujad, kuigi võrdsed väärtuselt,
ei ole võrdsed tüübi poolest:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // see töötab
}
Kuid kahe stringi '3'
võrdlemisel on tingimus tõene:
if ('3' === '3') {
console.log('+++'); // see töötab
} else {
console.log('---');
}
Samuti nagu arvude võrdlemisel:
if (3 === 3) {
console.log('+++'); // see töötab
} else {
console.log('---');
}
Operaatori == ja operaatori
=== erinevus ilmneb just siis, kui
väärtused on samad, kuid andmetüübid on erinevad.
Muudel juhtudel need operaatorid töötavad
samamoodi. Näiteks erinevate arvude
võrdlemisel logitakse loomulikult '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // see töötab
}
Määrake koodi käivitamata, mida konsooli logitakse:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Määrake koodi käivitamata, mida konsooli logitakse:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Määrake koodi käivitamata, mida konsooli logitakse:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Määrake koodi käivitamata, mida konsooli logitakse:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Määrake koodi käivitamata, mida konsooli logitakse:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}