Creative Saplings

Forskel mellem isNaN og Number.isNaN

september 16, 2020
No Comments

Næsten alle ved, hvad `isNaN` er, og hvordan man bruger det. Det betyder “er den ting, der ligner et tal, virkelig et tal eller ej?” Det returnerer sandt, hvis det er “Ikke et tal”. Jeg antager, at du har pointen. Ok, her er handlen her; hvad er forskellen mellem isNaN og Number.isNaN?

Før jeg begynder at forklare, vil jeg takke min ven Rafael for at have opmuntret mig til at skrive.

Lad os starte med isNaN. Dette er en global funktion, du kan ringe fra overalt. Lad os se det i aktion:

const badDivision = 17 / "something"; // NaN
isNaN(badDivision); // true

Det er så simpelt, men der er nogle misvisninger. Her er eksemplerne:

Som du kan se i henhold til isNaN-implementering behandles strengværdien som nummer og returnerer resultatet baseret på dette .. Marker `isNaN (‘blabla’)`

Så hvad?

Så for at løse de misforståelser, vi har Number.isNaN statisk metode kommer med EcmaScript 2015 # Number.isNaN
Hvad laver det?

I mit tilfælde har jeg en metode, der accepterer to parametre som nummertype og foretager animation ved skalering af målet objekt. Efter en lille refactoring fik jeg på en eller anden måde underlig opførsel. Ja, jeg skulle have skrevet enhedstest, skam mig. Under alle omstændigheder modtager metoden i nogle tilfælde udefineret som parametre. Så jeg er nødt til at kontrollere dem.

Jeg skrev dette:

Min skødesløshed fører mig til forkert logik. Fordi Number.isNaN (udefineret) returnerer mig falsk. (gammel isNaN (udefineret) returnerer sandt) Så jeg ændrede mig sådan:

function animate(targetScaleX, targetScaleY) {
if (!Number.isNaN(targetScaleX * targetScaleY)) {
return;
} // Do Animation
}

Så det ser ud til at virke. Men jeg ville pleje enhver mulig fiasko. Måske modtager jeg muligvis null i stedet for udefineret. Hvis jeg modtager null, mislykkes min logik. Hvorfor?

null * null; // 0
null * 8 // 0

Jeg tror, du ser det. Så jeg opdaterede koden sådan:

Mit mål var at kontrollere to værdier for at være udefineret eller null. Og min rejse ender med at skrive den artikel og opdatere min viden. Implementeringen er ikke fancy, jeg ved, men rejsen var lærerig.

Articles
Previous Post

Depression kan få dig til at høre stemmer

Next Post

Den sultne bjergbestiger

Skriv et svar Annuller svar

Seneste indlæg

  • Verdens bedste fotografiskoler, 2020
  • Suveræne borgere tager deres regeringsfilosofi til vejene
  • Guide til reparation af stuk reparationer
  • Muckrakers (Dansk)
  • Precision Oncology

Arkiver

  • februar 2021
  • januar 2021
  • december 2020
  • november 2020
  • oktober 2020
  • september 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.