Porovnávání hodnot s booleovským typem v JavaScriptu
V předchozím příkladu jsme pro porovnání použili
operátor ===. V tomto případě se naše proměnná
porovnávala na rovnost s true jak
podle hodnoty, tak podle typu.
Pro takové porovnání lze použít i
operátor ==. Pokud bude v proměnné test
vždy jedna z hodnot true
nebo false, nic se nezmění:
let test = true; // zde píšeme buď true, nebo false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Ale pokud do proměnné test mohou
přicházet libovolné hodnoty, vše se stává
mnohem složitějším.
V takovém případě, pokud je v proměnné test
nebo booleovská hodnota, bude tato hodnota
nejprve převedena na booleovskou a teprve
poté bude porovnávána.
Předpokládejme například, že v proměnné test
bude číslo 1. V tomto případě bude nejprve
převedeno na logický typ, tedy
na true. A poté bude provedeno porovnání:
let test = 1;
if (test == true) {
console.log('+++'); // toto se provede
} else {
console.log('---');
}
Ale například číslo 0 se převede
na false. A naše podmínka ve výsledku
vypíše 'neplatí':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // toto se provede
}
Takové porovnání lze vlastně explicitně přepsat do následující podoby:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Vzpomeňte si a napište, které hodnoty při
převedení na logický typ dávají
false.
Bez spuštění kodu určete, co se vypíše do konzole:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}