isNaN() to funkcja sprawdzająca, czy podana wartość nie jest liczbą. Nazwa pochodzi od angielskiego is Not a Number.
Funkcja zwraca:
- true — gdy wartość nie może być traktowana jako liczba,
- false — gdy wartość jest liczbą albo może zostać na liczbę przekonwertowana.
Przykłady
isNaN(10); // false
isNaN("10"); // false, tekst "10" można zamienić na liczbę
isNaN("abc"); // true
isNaN(NaN); // true
W warunkach często stosuje się zaprzeczenie !isNaN(x), które oznacza: x jest liczbą lub może być potraktowane jako liczba.
if (!isNaN(x)) {
console.log("x jest liczbą");
}
Przykład z warunkiem
if ((!isNaN(x)) && (x > 0)) {
console.log("x jest dodatnią wartością liczbową");
}
Warunek jest prawdziwy tylko wtedy, gdy spełnione są oba warunki:
1. !isNaN(x) — zmienna x jest wartością liczbową,
2. x > 0 — zmienna x jest większa od zera.
Dlatego poprawna interpretacja to: x posiada dowolną dodatnią wartość liczbową.
Uwaga egzaminacyjna
isNaN(x) sprawdza, czy coś nie jest liczbą, więc zapis z wykrzyknikiem !isNaN(x) odwraca wynik. To częsty element pytań egzaminacyjnych z JavaScript.