Creative Saplings

Forskjell mellom isNaN og Number.isNaN

september 16, 2020
No Comments

Nesten alle vet hva `isNaN` er og hvordan man bruker det. Det betyr «er den tingen som ser ut som et tall, virkelig et tall eller ikke?» Det blir sant hvis det er gitt «Ikke et tall». Jeg antar at du har poenget. Ok, nå er det avtalen; hva er forskjellen mellom isNaN og Number.isNaN?

Før jeg begynner å forklare, vil jeg takke vennen min Rafael for at han oppfordret meg til å skrive.

La oss begynne med isNaN. Dette er en global funksjon du kan ringe fra hvor som helst. La oss se det i aksjon:

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

Det er så enkelt, men det er noen feilvisninger. Her er eksemplene:

Som du kan se i henhold til isNaN-implementering, behandles strengverdien som tall og returnerer resultatet basert på dette .. Sjekk `isNaN (‘blabla’)`

Så hva?

Så for å løse de misforståelsene vi har Number.isNaN statisk metode kommer med EcmaScript 2015 # Number.isNaN
Hva gjør den?

I mitt tilfelle har jeg en metode som godtar to parametere som talltype og gjør litt animasjon på skalering av målet gjenstand. Etter en liten refactoring fikk jeg på en eller annen måte underlig oppførsel. Ja, jeg burde ha skrevet enhetstester, skam meg. Uansett, i noen tilfeller mottar metoden udefinert som parametere. Så jeg må sjekke dem.

Jeg skrev dette:

Min uforsiktighet fører meg til feil logikk. Fordi Number.isNaN (udefinert) vil gi meg falsk. (gammel isNaN (udefinert) returnerer sant) Så jeg endret meg slik:

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

Så det ser ut til å virke. Men jeg ønsket å bry meg om alle mulige feil. Kanskje jeg kan motta null i stedet for udefinert. Hvis jeg mottar null, mislykkes logikken min. Hvorfor?

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

Jeg tror du ser saken. Så jeg oppdaterte koden slik:

Målet mitt var å sjekke to verdier mot å være udefinert eller null. Og reisen min ender med å skrive den artikkelen og oppdatere kunnskapen min. Implementeringen er ikke fancy, jeg vet, men reisen var lærerik.

Articles
Previous Post

Depresjon kan få deg til å høre stemmer

Next Post

The Hungry Mountaineer (Norsk)

Legg igjen en kommentar Avbryt svar

Siste innlegg

  • De beste fotografiskolene i verden, 2020
  • Suverene borgere tar sin regjeringsfilosofi til veiene
  • Veiledning for stukkaturreparasjon
  • Muckrakers (Norsk)
  • Precision Oncology (Norsk)

Arkiv

  • februar 2021
  • januar 2021
  • desember 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.