Nierówność według wartości i typu w JavaScript
Oprócz operatora != istnieje również
operator !==, uwzględniający typ przy
porównaniu. Przyjrzyjmy się różnicom między
nimi na przykładach.
Niech za pomocą operatora != porównywane są
dwie liczby 3. Ten operator porównuje
wartości pod kątem tego, że NIE są równe. Ponieważ
nasze wartości są właśnie równe, to
warunek będzie fałszywy:
if (3 != 3) {
console.log('+++');
} else {
console.log('---'); // zadziała to
}
Niech teraz jedna z naszych wartości będzie
w cudzysłowie. W tym przypadku operator !=
i tak uzna je za równe (ponieważ wartości się pokrywają,
a typ nie ma znaczenia dla tego operatora)
i znowu warunek będzie fałszywy:
if ('3' != 3) {
console.log('+++');
} else {
console.log('---'); // zadziała to
}
Porównajmy teraz dwie liczby 3
za pomocą operatora !==. On również
uzna je za równe:
if (3 !== 3) {
console.log('+++');
} else {
console.log('---'); // zadziała to
}
A jeśli teraz weźmiemy jedną z trójek w cudzysłów,
to operator !== uzna nasze trójki
za nierówne, ponieważ, chociaż ich wartości się pokrywają,
to mają one różny typ:
if ('3' !== 3) {
console.log('+++'); // zadziała to
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test1 = '3';
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test1 = '3';
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test1 = 3;
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test1 = 3;
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test1 = 3;
let test2 = 2;
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}