Rovnost podle hodnoty a typu v JavaScriptu
Předpokládejme, že chcete porovnávat tak, aby číslo v uvozovkách nebylo rovno stejnému číslu bez uvozovek. Jinými slovy, chcete porovnávat tak, aby porovnání bylo nejen podle hodnoty, ale také podle datového typu.
K tomu místo operátoru == je třeba
použít operátor ===. V následujícím
příkladě při porovnání řetězce '3' a
čísla 3 bude podmínka nepravdivá,
protože proměnné, ačkoli jsou si rovny hodnotou,
nejsou stejného typu:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // toto se provede
}
Zatímco při porovnání dvou řetězců '3'
bude podmínka pravdivá:
if ('3' === '3') {
console.log('+++'); // toto se provede
} else {
console.log('---');
}
Stejně tak při porovnání čísel:
if (3 === 3) {
console.log('+++'); // toto se provede
} else {
console.log('---');
}
Rozdíl mezi operátorem == a operátorem
=== se projeví právě tehdy, když jsou
hodnoty stejné, ale liší se datový typ.
V ostatních případech tyto operátory fungují
stejně. Například při porovnání různých
čísel se samozřejmě vypíše '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // toto se provede
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}