Sammenligning av verdier med boolsk type i JavaScript
I forrige eksempel brukte vi for sammenligning
operatoren ===. I dette tilfellet ble variabelen vår
sammenlignet med likhet true både
på verdi og type.
For en slik sammenligning kan man også bruke
operatoren ==. Hvis variabelen test
alltid vil være én av verdiene true
eller false, så vil ingenting forandres:
let test = true; // skriver enten true eller false her
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Men hvis variabelen test kan
inneholde alle mulige verdier, så blir alt
mye mer komplisert.
I et slikt tilfelle, hvis variabelen test
ikke har en boolsk verdi, så vil denne verdien
først bli konvertert til en boolsk verdi og først
deretter bli sammenlignet.
La for eksempel variabelen test
inneholde tallet 1. I dette tilfellet vil det først
blitt konvertert til en boolsk type, altså
til true. Og deretter vil sammenligningen bli utført:
let test = 1;
if (test == true) {
console.log('+++'); // dette vil kjøre
} else {
console.log('---');
}
Men for eksempel vil tallet 0 bli konvertert
til false. Og vår betingelse vil som et resultat
skrive ut '---':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // dette vil kjøre
}
I praksis kan en slik sammenligning eksplisitt omskrives på følgende måte:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Husk og skriv ned, hvilke verdier som
ved konvertering til en boolsk type gir
false.
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Uten å kjøre koden, avgjør hva som vil skrives ut i konsollen:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}