Równość według wartości i typu w JavaScript
Załóżmy, że chcesz porównywać tak, aby liczba w cudzysłowach nie była równa tej samej liczbie bez cudzysłowów. Innymi słowy, chcesz porównywać tak, aby porównanie było nie tylko według wartości, ale także według typu danych.
W tym celu zamiast operatora == należy
używać operatora ===. W następnym
przykładzie przy porównaniu ciągu znaków '3' i
liczby 3 warunek będzie fałszywy,
ponieważ zmienne, choć równe pod względem wartości,
nie są równe pod względem typu:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // zadziała to
}
A oto przy porównaniu dwóch ciągów znaków '3'
warunek będzie prawdziwy:
if ('3' === '3') {
console.log('+++'); // zadziała to
} else {
console.log('---');
}
Podobnie jak przy porównaniu liczb:
if (3 === 3) {
console.log('+++'); // zadziała to
} else {
console.log('---');
}
Różnica między operatorem == a operatorem
=== ujawnia się właśnie wtedy, gdy
wartości są takie same, ale typ danych jest inny.
W pozostałych przypadkach te operatory działają
tak samo. Na przykład, przy porównaniu różnych
liczb, oczywiście, wyświetli się '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // zadziała to
}
Bez uruchamiania kodu określ, co wyświetli się w konsoli:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co wyświetli się w konsoli:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co wyświetli się w konsoli:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co wyświetli się w konsoli:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co wyświetli się w konsoli:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}