A probléma tesztelés Nan JavaScript

eredetileg megjelent a csepegtető JavaScript hírlevél.

A JavaScriptben a NaN (azaz “nem szám”) speciális értéket használjuk egy olyan matematikai számítás eredményének ábrázolására, amelyet nem lehet értelmes számként ábrázolni., Például:

Te is valószínű, befut NaN ha az parseInt vagy parseFloat kivonat egy szám string, mint ebben a példában:

ennek eredményeként, a JavaScript fejlesztők gyakran szükséges, hogy a teszt eredménye változó, hogy vajon tartalmaz NaN vagy hogy ez egy értelmes érték helyett. Számos különböző módja van annak ellenőrzésére, hogy egy érték NaN, de sajnos a legtöbbjük megbízhatatlan., Sétáljunk át néhányon, és lássuk, hogyan buknak el.

a logikus dolog az, hogy ellenőrizze, hogy az eredmény egyenlő-e NaN.

mi folyik itt? A JavaScript-ben a NaN az egyetlen olyan érték, amely nem egyenlő önmagával. Ez azt jelenti, hogy nem tudjuk megtudni, hogy egy érték NaNa NaN egyenlőség ellenőrzésével, mert a válasz mindig nem lesz.

mi mást próbálhatnánk? Mi a helyzet a beépített isNaN funkcióval?,

Úgy tűnik, ez működik. És valójában bizonyos körülmények között működik. A név ellenére azonban a isNaN függvény célja nem annak ellenőrzése, hogy egy érték NaN. Ehelyett a cél annak ellenőrzése, hogy egy értéket nem lehet-e egy számra kényszeríteni. Emiatt, akkor vissza hamis pozitív., Vegye figyelembe a következőket:

hacsak nem biztos abban, hogy csak számokkal fog foglalkozni, vagy NaN, a isNaN funkció nem alkalmas erre a célra.

azonban kiderül, hogy az ECMAScript 6 új funkciót hoz létre annak ellenőrzésére, hogy egy érték NaN. Ezt a függvényt is nevezik isNaN, bár a Number objektumhoz van csatolva, nem pedig közvetlenül a globális objektumhoz., Ezt fel lehet használni, mint ez:

kiváló! Van egy módszer, ami tényleg működik. Sajnos aNumber.isNaN csak a FireFox és a Chrome újabb verzióiban érhető el, és még nem támogatott az IE-ben vagy más nagyobb böngészőkben. Ez a jövőben életképes megközelítés lehet,de jelenleg csak nagyon szűk körülmények között használható.

talán ellenőrizhetjük a NaN “s típusát?

Igen, ezt helyesen olvasod., A JavaScript-ben a NaN érték numbertípusú. Ez nem lesz nagyon hasznos.

tehát mit tehetünk, hogy valamit, ami jól működik, de az is elérhető cross-browser? Ne feledje, hogyan említettem, hogy aNaN az egyetlen érték a JavaScriptben, amely nem egyenlő önmagával? Kihasználhatjuk ezt a tényt.

jelenleg a legjobb módja annak, hogy ellenőrizze, hogy egy érték NaN annak ellenőrzése, hogy nem egyenlő-e önmagával. Ha igen, akkor tudja, hogy NaN.,

természetesen ennek a technikának a használata nem különösebben olvasható, ezért gyakori, hogy egy közüzemi módszerbe csomagolják, amely világosabban kommunikál a szándékkal. Mind az aláhúzás, mind a lo-Dash megvalósításokat biztosít.

remélem, ez segített jobban megérteni a NaNfurcsaságait.

Köszönjük, hogy elolvasta!

Josh Clanton

Vélemény, hozzászólás?

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