isNaN () (Magyar)

A isNaN függvényleírás legkorábbi verziói óta a nem numerikus argumentumokkal kapcsolatos viselkedése zavaró. Ha a isNaN függvény argumentuma nem a Szám típusú, akkor az értéket először egy Számra kényszerítik. A kapott értéket ezután teszteljük annak megállapítására, hogy ez NaN Így azon nem számok esetében, amelyek numerikus típusra kényszerítve érvényes nem NaN numerikus értéket eredményeznek (nevezetesen az üres karakterláncot és a logikai primitíveket, amelyek kényszerítéskor nulla vagy egy numerikus értéket adnak), a “hamis” visszaadott érték váratlan lehet; az üres karakterlánc például “nem szám”. A zavart abból a tényből fakad, hogy a “nem szám” kifejezésnek konkrét jelentése van az IEEE-754 lebegőpontos értékeként ábrázolt számok vonatkozásában. A függvényt úgy kell értelmezni, hogy megválaszolja a kérdést: “Ez az érték numerikus értékre kényszerítve egy IEEE-754” Nem szám “érték?”

Az ECMAScript 2015 tartalmazza a Number.isNaN() függvény. A Number.isNaN(x) megbízható módszer annak tesztelésére, hogy a x NaN-e vagy sem. Még Number.isNaN esetén is a NaN jelentése továbbra is a pontos numerikus jelentés, és nem a “nem szám”. Alternatív megoldásként Number.isNaN hiányában a (x != x) kifejezés megbízhatóbb módja annak tesztelésére, hogy a x NaN vagy sem, mivel az eredmény nem függ azoktól a hamis pozitív eredményektől, amelyek megbízhatatlanná teszik a isNaN t.

A isNaN polifill kitöltése a következő lenne (a polifill kihasználja a (z) NaN egyedi egyedülálló, soha nem egyenlő sajátosságát):

Write a Comment

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük