Porovnávanie hodnôt s booleovským typom v JavaScripte
V predchádzajúcom príklade sme na porovnanie použili
operátor ===. V tomto prípade sa naša premenná
porovnávala na rovnosť s true
ako podľa hodnoty, tak aj podľa typu.
Pre takéto porovnanie sa dá použiť aj
operátor ==. Ak bude v premennej test
vždy jedna z hodnôt true
alebo false, tak nič sa nezmení:
let test = true; // tu píšeme buď true, alebo false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
No ak do premennej test môžu
prísť ľubovoľné hodnoty, všetko sa stáva
oveľa zložitejšie.
V takom prípade, ak bude v premennej test
nebooleovská hodnota, tak sa táto hodnota
najprv prevedie na booleovský typ a až
potom sa bude porovnávať.
Nech napríklad v premennej test
bude číslo 1. V tomto prípade sa najprv
prevedie na logický typ, teda
na true. A potom sa vykoná porovnanie:
let test = 1;
if (test == true) {
console.log('+++'); // spustí sa toto
} else {
console.log('---');
}
No napríklad číslo 0 sa prevedie
na false. A naša podmienka v dôsledku
vypíše 'neplatné':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // spustí sa toto
}
Takéto porovnanie sa v podstate dá explicitne prepísať do nasledujúceho tvaru:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Spomeňte si a napíšte, ktoré hodnoty pri
prevedení na booleovský typ dávajú
false.
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}