isNaN () (Čeština)

Od nejranějších verzí specifikace funkce isNaN je její chování pro nečíselné argumenty matoucí. Když argument funkce isNaN není typu Number, je hodnota nejprve vynucena na Number. Výsledná hodnota se poté testuje, aby se zjistilo, zda je NaN. U nečíselných čísel, které při vynucení na číselný typ vedou k platné numerické hodnotě jiné než NaN (zejména prázdný řetězec a logická primitiva, která při vynucení dávají číselné hodnoty nula nebo jedna), může být „false“ vrácená hodnota neočekávaná; například prázdný řetězec určitě „není číslo“. Zmatek pramení ze skutečnosti, že výraz „není číslo“ má specifický význam pro čísla představovaná jako hodnoty s plovoucí desetinnou čárkou IEEE-754. Funkce by měla být interpretována jako odpověď na otázku, „je tato hodnota, když je vynucena číselnou hodnotou, hodnota IEEE-754„ Not A Number “?“

ECMAScript 2015 obsahuje Number.isNaN() funkce. Number.isNaN(x) je spolehlivý způsob, jak otestovat, zda x je NaN. I v případě Number.isNaN však význam NaN zůstává přesným číselným významem, nikoli „číslem“. Alternativně, při absenci Number.isNaN je výraz (x != x) spolehlivější způsob, jak otestovat, zda proměnná x je NaN nebo ne, protože výsledek nepodléhá falešným pozitivům, díky nimž je isNaN nespolehlivý.

Polyfill for isNaN by byl (polyfill využívá jedinečnou charakteristiku, která se nikdy nerovná sobě NaN):

Write a Comment

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *