Sammenligning af værdier med boolsk type i JavaScript
I det forrige eksempel brugte vi til sammenligning
operatoren ===. I dette tilfælde blev vores variabel
sammenlignet med lighed med true både
på værdi og type.
Til sådan sammenligning kan man også bruge
operatoren ==. Hvis variablen test
altid vil være en af værdierne true
eller false, så ændrer intet sig:
let test = true; // skriver enten true eller false her
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Men hvis variablen test kan
indeholde enhver værdi, så bliver alt
mere kompliceret.
I sådant tilfælde, hvis variablen test
ikke indeholder en boolsk værdi, så vil denne værdi
først blive konverteret til en boolsk værdi og først
derefter blive sammenlignet.
Lad for eksempel variablen test
indeholde tallet 1. I dette tilfælde vil det først
blive konverteret til den logiske type, altså
til true. Og derefter vil sammenligningen blive udført:
let test = 1;
if (test == true) {
console.log('+++'); // dette vil køre
} else {
console.log('---');
}
Men for eksempel vil tallet 0 blive konverteret
til false. Og vores betingelse vil som resultat
udskrive 'forkert':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // dette vil køre
}
Faktisk kan en sådan sammenligning eksplicit omskrives på følgende måde:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Husk og skriv, hvilke værdier der
ved konvertering til den logiske type giver
false.
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uden at køre koden, afgør hvad der udskrives i konsollen:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}