Creative Saplings

Diferența dintre isNaN și Number.isNaN

septembrie 16, 2020
No Comments

Aproape toată lumea știe ce este `isNaN` și cum să-l folosească. Înseamnă „este acel lucru care arată ca un număr, într-adevăr un număr sau nu?” Revine adevărat dacă este dat „Nu este un număr”. Presupun că ai înțeles. Ok, acum iată afacerea; care este diferența dintre isNaN și Number.isNaN?

Înainte de a începe să explic, vreau să îi mulțumesc prietenului meu Rafael pentru că m-a încurajat să scriu.

Să începem cu isNaN. Aceasta este o funcție globală pe care o puteți apela de oriunde. Să o vedem în acțiune:

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

Este atât de simplu, dar există unele direcții greșite. Iată exemplele:

După cum puteți vedea în conformitate cu implementarea isNaN, tratează valoarea șirului ca număr și returnează rezultatul pe baza acestui lucru .. Verificați `isNaN (‘blabla’)`

Deci, ce?

Deci, pentru a rezolva acele concepții greșite, avem Metoda statică Number.isNaN vine cu EcmaScript 2015 # Number.isNaN
Ce face?

În cazul meu, am o metodă care acceptă doi parametri ca tip de număr și fac unele animații la scalarea țintei obiect. Cumva, după ce am refăcut puțin, am avut un comportament ciudat. Da, ar fi trebuit să scriu teste unitare, rușine pentru mine. Oricum, pentru unele cazuri, metoda primește parametri nedefiniți. Așadar, trebuie să le verific.

Am scris acest lucru:

Neatenția mea mă duce la o logică greșită. Deoarece Number.isNaN (nedefinit) îmi va da fals. (vechiul isNaN (nedefinit) revine adevărat) Așa că m-am schimbat astfel:

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

Deci, pare să funcționeze. Dar am vrut să-mi pese de orice eșec posibil. Poate că aș primi nul în loc de nedefinit. Dacă primesc nul logica mea va eșua. De ce?

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

Cred că vedeți chestia. Așa că am actualizat codul astfel:

Obiectivul meu a fost verificarea a două valori pentru a fi nedefinite sau nule. Și călătoria mea ajunge să scriu articolul respectiv și să-mi actualizez cunoștințele. Implementarea nu este fantezistă, dar călătoria a fost educativă.

Articles
Previous Post

Depresia vă poate face să auziți voci

Next Post

The Hungry Mountaineer (Română)

Lasă un răspuns Anulează răspunsul

Articole recente

  • Cele mai bune școli de fotografie din lume, 2020
  • Cetățenii suverani își duc filosofia anti-guvernamentală la drumuri
  • Ghid de costuri de reparații stuc
  • Muckrakers (Română)
  • Oncologie de precizie

Arhive

  • februarie 2021
  • ianuarie 2021
  • decembrie 2020
  • noiembrie 2020
  • octombrie 2020
  • septembrie 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.