Creative Saplings

Różnica między isNaN i Number.isNaN

16 września, 2020
No Comments

Prawie każdy wie, czym jest „isNaN” i jak go używać. To znaczy „czy to, co wygląda jak liczba, naprawdę jest liczbą, czy nie?” Zwraca prawdę, jeśli podano „Nie jest liczbą”. Zakładam, że masz rację. Ok, teraz sprawa; jaka jest różnica między isNaN i Number.isNaN?

Zanim zacznę wyjaśniać, chcę podziękować mojemu przyjacielowi Rafaelowi za zachęcenie mnie do pisania.

Zacznijmy od isNaN. Jest to globalna funkcja, którą możesz wywołać z dowolnego miejsca. Zobaczmy, jak to działa:

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

To takie proste, ale jest kilka błędnych wskazówek. Oto przykłady:

Jak widać zgodnie z implementacją isNaN traktuje wartość ciągu jako liczbę i zwraca wynik na tej podstawie. Sprawdź `isNaN (’blabla')`

I co z tego?

Aby rozwiązać te nieporozumienia, które mamy Metoda statyczna Number.isNaN jest dostarczana z EcmaScript 2015 # Number.isNaN
Co to robi?

W moim przypadku mam metodę, która akceptuje dwa parametry jako typ liczbowy i wykonuję animację skalowania celu obiekt. W jakiś sposób po drobnych refaktoryzacjach zachowywałem się dziwnie. Tak, powinienem był napisać testy jednostkowe, wstyd mi. W każdym razie w niektórych przypadkach metoda otrzymuje nieokreślone parametry. Muszę więc je sprawdzić.

Napisałem to:

Moja nieostrożność prowadzi mnie do złej logiki. Ponieważ Number.isNaN (undefined) zwróci mi fałsz. (stary isNaN (undefined) zwraca true) Więc zmieniłem to w ten sposób:

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

Wygląda na to, że działa. Ale chciałem zająć się każdą możliwą porażką. Może otrzymam wartość null zamiast undefined. Jeśli otrzymam wartość null, moja logika zawiedzie. Dlaczego?

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

Myślę, że to widzisz. Więc zaktualizowałem kod w ten sposób:

Moim celem było sprawdzenie dwóch wartości, aby były niezdefiniowane lub zerowe. Moja podróż kończy się napisaniem tego artykułu i aktualizacją mojej wiedzy. Wdrożenie nie jest wyszukane, wiem, ale podróż była edukacyjna.

Articles
Previous Post

Depresja może sprawić, że usłyszysz głosy

Next Post

The Hungry Mountaineer (Polski)

Dodaj komentarz Anuluj pisanie odpowiedzi

Najnowsze wpisy

  • Najlepsze szkoły fotograficzne na świecie, 2020
  • Suwerenni obywatele zabierają na drogi swoją antyrządową filozofię
  • Przewodnik po kosztach naprawy sztukaterii
  • Muckrakers (Polski)
  • Precyzyjna onkologia

Archiwa

  • Luty 2021
  • Styczeń 2021
  • Grudzień 2020
  • Listopad 2020
  • Październik 2020
  • Wrzesień 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.