Különbség az isNaN és a Szám.isNaN között
Szinte mindenki tudja, mi a `isNaN`, és hogyan kell használni. Ez azt jelenti, hogy “ez úgy néz ki, mint egy szám, valóban szám vagy sem?” Igazra tér vissza, ha a “Nem szám” értéket adta meg. Feltételezem, hogy megvan a lényeg. Ok, most itt az üzlet; mi a különbség az isNaN és a Number.isNaN között?
Mielőtt elmagyaráznám, szeretném megköszönni Rafael barátomnak, hogy az írásra biztatott.
Kezdjük az isNaN-nel. Ez egy globális funkció, amelyet mindenhonnan hívhat. Lássuk működés közben:
const badDivision = 17 / "something"; // NaN
isNaN(badDivision); // true
Ez ilyen egyszerű, de vannak félreirányítások. Íme a példa:
Amint az isNaN szerint láthatja, a implementáció a karakterlánc értékét számként kezeli, és ez alapján adja vissza az eredményt. Ellenőrizze az `isNaN (‘blabla’)` = “6e1317cca2″>
Tehát a tévhitek megoldása érdekében A Number.isNaN statikus módszer az EcmaScript 2015 programmal érkezik # Number.isNaN
Mit csinál?
Az én esetemben van egy módszerem, amely két paramétert fogad el számtípusként, és animál a cél skálázásakor. tárgy. Valahogy furcsa viselkedést kaptam, miután kevés refaktort végeztem. Igen, írt egységdokumentumokat kellett volna előírnom, szégyen engem. Egyébként egyes esetekben a módszer meghatározatlanul kap paramétereket. Tehát ellenőriznem kell őket.
Ezt írtam:
A gondatlanságom téves logikához vezet. Mivel a Number.isNaN (undefined) hamis értéket ad vissza. (A régi isNaN (undefined) true-val tér vissza) Tehát én így változtam:
function animate(targetScaleX, targetScaleY) {
if (!Number.isNaN(targetScaleX * targetScaleY)) {
return;
} // Do Animation
}
Úgy tűnik tehát, hogy működik. De szerettem volna törődni minden lehetséges kudarccal. Lehet, hogy definiálatlan helyett nullat kapok. Ha nullat kapok, akkor a logikám meghiúsul. Miért?
null * null; // 0
null * 8 // 0
Azt hiszem, látja a dolgot. Tehát így frissítettem a kódot:
Célom az volt, hogy két értéket ellenőriztem, hogy nem definiáltak vagy semlegesek-e. És utam végül a cikk megírásával és ismereteim frissítésével jár. A megvalósítás nem divatos, de tudom, hogy az utazás oktató volt.