Junior
Jak sprawdzić, czy liczba jest NaN?
sobes.tech AI
Odpowiedź od AI
Używają funkcji isNaN(), która sprawdza, czy wartość jest "Nie liczbą" (Not-a-Number).
// Przykłady użycia isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, ponieważ 'hello' nie może zostać zamienione na liczbę
console.log(isNaN('123')); // false, ponieważ '123' może zostać zamienione na liczbę 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, ponieważ null jest konwertowane na 0
// Sprawdzanie konwersji typów w isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Istnieje również metoda Number.isNaN(), która bardziej rygorystycznie sprawdza, czy wartość jest dokładnie NaN, bez wcześniejszej konwersji.
// Przykłady użycia Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, nie konwertuje do liczby
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Różnice w porównaniu do isNaN() przy argumentach niebędących liczbami
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Porównanie NaN z samym sobą lub inną wartością zawsze zwraca false, z wyjątkiem użycia Object.is().
// Charakterystyka porównania z NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Porównanie za pomocą Object.is()
console.log(Object.is(NaN, NaN)); // true
W zależności od zadania, może być konieczne użycie isNaN() (jeśli ważne jest sprawdzenie po konwersji do liczby) lub Number.isNaN() (dla ścisłej kontroli na NaN). Metoda Number.isNaN() jest preferowana do dokładnego sprawdzania, czy dana wartość jest dokładnie NaN.