isNaN() w JavaScript

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.