Nerovnost podle hodnoty a typu v JavaScriptu
Kromě operátoru != existuje také
operátor !==, který bere v úvahu typ při
porovnávání. Podívejme se na rozdíly mezi
nimi na příkladech.
Předpokládejme, že pomocí operátoru != se porovnávají
dvě čísla 3. Tento operátor porovnává
hodnoty na to, že se nerovnají. Protože
naše hodnoty se právě rovnají,
podmínka bude nepravdivá:
if (3 != 3) {
console.log('+++');
} else {
console.log('---'); // spustí se toto
}
Nyní nechť je jedna z našich hodnot
v uvozovkách. V tomto případě operátor !=
je stále bude považovat za stejné (protože se shoduje
hodnota, a typ není pro tento operátor důležitý)
a podmínka bude opět nepravdivá:
if ('3' != 3) {
console.log('+++');
} else {
console.log('---'); // spustí se toto
}
Nyní porovnejme dvě čísla 3
pomocí operátoru !==. Ten je také
bude považovat za stejná:
if (3 !== 3) {
console.log('+++');
} else {
console.log('---'); // spustí se toto
}
Ale pokud nyní jednu z trojek vezmeme do uvozovek,
operátor !== bude považovat naše trojky
za nerovné, protože, ačkoli se jejich hodnoty shodují,
mají různý typ:
if ('3' !== 3) {
console.log('+++'); // spustí se toto
} 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('---');
}
Bez spuštění kodu určete, co se vypíše do konzole:
let test1 = 3;
let test2 = 2;
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}