Rovnosť podľa hodnoty a typu v JavaScripte
Povedzme, že chcete porovnávať tak, aby číslo v úvodzovkách nebolo rovnaké ako rovnaké číslo bez úvodzoviek. Inými slovami, chcete porovnávať tak, aby porovnanie bolo nielen podľa hodnoty, ale aj podľa typu údajov.
Na to namiesto operátora == by ste mali
použiť operátor ===. V nasledujúcom
príklade pri porovnávaní reťazca '3' a
čísla 3 bude podmienka nepravdivá,
pretože premenné, hoci sú rovnaké podľa hodnoty,
nie sú rovnaké podľa typu:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // vypíše sa toto
}
Ale pri porovnávaní dvoch reťazcov '3'
bude podmienka pravdivá:
if ('3' === '3') {
console.log('+++'); // vypíše sa toto
} else {
console.log('---');
}
Rovnako ako pri porovnávaní čísel:
if (3 === 3) {
console.log('+++'); // vypíše sa toto
} else {
console.log('---');
}
Rozdiel medzi operátorom == a operátorom
=== sa prejaví práve vtedy, keď
sú hodnoty rovnaké, ale typ údajov je odlišný.
V ostatných prípadoch tieto operátory fungujú
rovnako. Napríklad pri porovnávaní rôznych
čísiel sa samozrejme vypíše '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // vypíše sa toto
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spustenia kódu určite, čo sa vypíše do konzoly:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}