isNaN () (Polski)

Od najwcześniejszych wersji specyfikacji funkcji isNaN, jej zachowanie dla argumentów nienumerycznych jest mylące. Gdy argument funkcji isNaN nie jest typu Liczba, wartość jest najpierw przekształcana w liczbę. Wynikowa wartość jest następnie testowana w celu określenia, czy jest to NaN. Tak więc dla nie-liczb, które po przekształceniu do typu liczbowego dają prawidłową wartość liczbową inną niż NaN (w szczególności pusty łańcuch i wartości logiczne, które po wymuszeniu dają wartości liczbowe zero lub jeden), zwrócona wartość „fałsz” może być nieoczekiwana; na przykład pusty ciąg z pewnością nie jest liczbą. Zamieszanie wynika z faktu, że termin „nie liczba” ma określone znaczenie dla liczb przedstawionych jako wartości zmiennoprzecinkowe IEEE-754. Funkcję należy interpretować jako odpowiedź na pytanie, „czy ta wartość, wymuszona na wartość liczbową, jest wartością IEEE-754„ Not A Number ”?”

ECMAScript 2015 zawiera Number.isNaN(). Number.isNaN(x) to niezawodny sposób na sprawdzenie, czy x to NaN, czy nie. Jednak nawet w przypadku Number.isNaN znaczenie NaN pozostaje dokładnym znaczeniem liczbowym, a nie „nie jest liczbą”. Alternatywnie, w przypadku braku Number.isNaN, wyrażenie (x != x) jest bardziej niezawodnym sposobem sprawdzenia, czy zmienna x jest NaN lub nie, ponieważ wynik nie podlega fałszywym alarmom, które powodują, że isNaN jest zawodny.

Wypełnienie dla isNaN byłoby (wypełnienie wykorzystuje unikalną cechę NaN):

Write a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *