Creative Saplings

Skillnad mellan isNaN och Number.isNaN

september 16, 2020
No Comments

Nästan alla vet vad `isNaN` är och hur man använder det. Det betyder ”är den saken som ser ut som ett nummer, verkligen ett nummer eller inte?” Det returnerar sant om det ges ”Inte ett nummer”. Jag antar att du har poängen. Ok, nu är det här affären; vad är skillnaden mellan isNaN och Number.isNaN?

Innan jag börjar förklara vill jag tacka min vän Rafael för att han uppmuntrade mig att skriva.

Låt oss börja med isNaN. Det här är en global funktion som du kan ringa från var som helst. Låt oss se det i aktion:

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

Det är så enkelt men det finns några felriktningar. Här är exemplen:

Som du kan se enligt isNaN-implementering behandlar strängvärdet som nummer och returnerar resultatet baserat på detta .. Markera `isNaN (’blabla’)`

Så vad?

Så för att lösa de missuppfattningar vi har Number.isNaN statisk metod kommer med EcmaScript 2015 # Number.isNaN
Vad gör det?

I mitt fall har jag en metod som accepterar två parametrar som nummertyp och gör lite animering vid skalning av mål objekt. På något sätt efter att ha gjort lite refactoring fick jag konstigt beteende. Ja, jag borde ha skrivit enhetstester, skäm mig. Hur som helst, i vissa fall får metoden odefinierad som parametrar. Så jag måste kontrollera dem.

Jag skrev det här:

Min slarv leder mig till fel logik. Eftersom Number.isNaN (odefinierad) kommer att returnera mig falsk. (gammal isNaN (undefined) returnerar true) Så jag ändrade så här:

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

Så det verkar fungera. Men jag ville ta hand om alla tänkbara misslyckanden. Jag kanske får null istället för odefinierad. Om jag får null kommer min logik att misslyckas. Varför?

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

Jag tror att du ser saken. Så jag uppdaterade koden så här:

Mitt mål var att kontrollera två värden mot att vara odefinierad eller null. Och min resa slutar skriva den artikeln och uppdatera mina kunskaper. Implementeringen är inte snygg jag vet men resan var lärorik.

Articles
Previous Post

Depression kan få dig att höra röster

Next Post

The Hungry Mountaineer (Svenska)

Lämna ett svar Avbryt svar

Senaste inläggen

  • Världens bästa fotoskolor, 2020
  • Suveräna medborgare tar sin regeringsfilosofi mot vägarna
  • Guide för reparation av stuckaturer
  • Muckrakers (Svenska)
  • Precision Oncology (Svenska)

Arkiv

  • februari 2021
  • januari 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.