W JavaScript wynik operacji przyjmie wartość NaN, gdy skrypt próbował wykonać:
A. operację arytmetyczną na dwóch dodatnich liczbach
Źle. To zwróci poprawny wynik liczbowy.
B. funkcję
parseFloat zamiast parseInt na liczbieŹle. To zwróci liczbę, nie
NaN.C. operację arytmetyczną, gdy zmienna była napisem (nieliczbowym)
Dobrze. Działanie na nieliczbowym napisie daje
NaN.D. sprawdzenie długości napisu, gdy zmienna była liczbą
Źle. To nie generuje
NaN w typowy sposób.Wartość
NaN (Not a Number) to specjalny wynik oznaczający „to nie jest liczba”. Pojawia się, gdy JavaScript próbuje wykonać DZIAŁANIE ARYTMETYCZNE na czymś, czego nie da się zamienić na liczbę - np. "abc" * 2 albo parseInt("kot"). Co ważne, NaN jest „zaraźliwy”: każde kolejne działanie z jego udziałem też da NaN. Stąd nawyk sprawdzania danych z formularzy funkcją isNaN() przed liczeniem. Zapamiętaj: arytmetyka na nieliczbowym napisie = NaN.Pozostałe sytuacje nie dają
NaN. Działanie na dwóch poprawnych liczbach zwróci normalną liczbę - to przypadek prawidłowy. Sprawdzanie długości napisu (.length) działa też na tekstach i zwraca liczbę, a nie błąd. Użycie parseFloat zamiast parseInt na liczbie po prostu ją sparsuje (różnią się obsługą części dziesiętnej), nie generując NaN. NaN powstaje dopiero przy arytmetyce na nieliczbowym napisie.