Creative Saplings

Differenza tra isNaN e Number.isNaN

Settembre 16, 2020
No Comments

Quasi tutti sanno cos’è `isNaN` e come usarlo. Significa “quella cosa che sembra un numero, davvero un numero o no?” Restituisce vero se è “Non un numero”. Presumo che tu abbia capito il punto. Ok, ora ecco l’affare; qual è la differenza tra isNaN e Number.isNaN?

Prima di iniziare a spiegare voglio ringraziare il mio amico Rafael per avermi incoraggiato a scrivere.

Cominciamo con isNaN. Questa è una funzione globale che puoi chiamare ovunque. Vediamolo in azione:

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

È così semplice ma ci sono alcune indicazioni sbagliate. Ecco gli esempi:

Come puoi vedere, secondo l’implementazione di isNaN tratta il valore della stringa come numero e restituisce il risultato in base a questo .. Controlla `isNaN (‘blabla’)`

E allora?

Quindi, per risolvere questi malintesi abbiamo Il metodo statico Number.isNaN viene fornito con EcmaScript 2015 # Number.isNaN
Cosa sta facendo?

Nel mio caso ho un metodo che accetta due parametri come tipo di numero e faccio qualche animazione sul ridimensionamento del target oggetto. In qualche modo, dopo aver fatto un piccolo refactoring, ho avuto un comportamento strano. Sì, avrei dovuto scrivere test unitari, vergogna. Ad ogni modo, per alcuni casi il metodo riceve undefined come parametri. Quindi devo controllarli.

Ho scritto questo:

La mia disattenzione mi porta a una logica sbagliata. Perché Number.isNaN (undefined) mi restituirà false. (il vecchio isNaN (undefined) restituisce true) Quindi ho cambiato in questo modo:

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

Quindi sembra che funzioni. Ma volevo prendermi cura di ogni possibile fallimento. Forse potrei ricevere null invece di undefined. Se ricevo null la mia logica fallirà. Perché?

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

Penso che tu veda la cosa. Quindi ho aggiornato il codice in questo modo:

Il mio obiettivo era verificare che due valori fossero indefiniti o nulli. E il mio viaggio finisce per scrivere quell’articolo e aggiornare le mie conoscenze. L’implementazione non è di fantasia, lo so, ma il viaggio è stato educativo.

Articles
Previous Post

La depressione può farti sentire le voci

Next Post

The Hungry Mountaineer (Italiano)

Lascia un commento Annulla risposta

Articoli recenti

  • Best Photography Schools In The World, 2020
  • I cittadini sovrani portano la loro filosofia antigovernativa sulle strade
  • Guida ai costi di riparazione dello stucco
  • Muckrakers (Italiano)
  • Oncologia di precisione

Archivi

  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • Novembre 2020
  • Ottobre 2020
  • Settembre 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.