Creative Saplings

Diferencia entre isNaN y Number.isNaN

septiembre 16, 2020
No Comments

Casi todo el mundo sabe qué es «isNaN» y cómo utilizarlo. Significa «¿es eso que parece un número, realmente un número o no?» Devuelve verdadero si se da «No es un número». Supongo que entendiste el punto. Ok, este es el trato; ¿Cuál es la diferencia entre isNaN y Number.isNaN?

Antes de comenzar a explicar quiero agradecer a mi amigo Rafael por animarme a escribir.

Empecemos con isNaN. Esta es una función global a la que puede llamar desde cualquier lugar. Veámoslo en acción:

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

Es así de simple pero hay algunas direcciones erróneas. Estos son los ejemplos:

Como puede ver, de acuerdo con la implementación de isNaN, trata el valor de la cadena como un número y devuelve el resultado en función de esto. Marque `isNaN (‘blabla’)`

¿Y qué?

Entonces, para resolver esos conceptos erróneos tenemos El método estático Number.isNaN viene con EcmaScript 2015 # Number.isNaN
¿Qué está haciendo?

En mi caso, tengo un método que acepta dos parámetros como tipo de número y hago algunas animaciones sobre la escala del objetivo objeto. De alguna manera, después de hacer una pequeña refactorización, obtuve un comportamiento extraño. Sí, debería haber escrito pruebas unitarias, la culpa es mía. De todos modos, en algunos casos, el método recibe parámetros indefinidos. Así que necesito revisarlos.

Escribí esto:

Mi descuido me lleva a una lógica incorrecta. Porque Number.isNaN (undefined) me devolverá falso. (old isNaN (undefined) devuelve verdadero) Así que cambié así:

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

Así que parece estar funcionando. Pero quería cuidar cada posible fracaso. Tal vez reciba nulo en lugar de indefinido. Si recibo nulo, mi lógica fallará. ¿Por qué?

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

Creo que lo ves. Así que actualicé el código de esta manera:

Mi objetivo era comparar dos valores para que no estuvieran definidos o fueran nulos. Y mi viaje termina escribiendo ese artículo y actualizando mis conocimientos. La implementación no es elegante, lo sé, pero el viaje fue educativo.

Articles
Previous Post

La depresión puede hacerte oír voces

Next Post

The Hungry Mountaineer (Español)

Deja una respuesta Cancelar la respuesta

Entradas recientes

  • Las mejores escuelas de fotografía del mundo, 2020
  • Los ciudadanos soberanos llevan su filosofía antigubernamental a las carreteras
  • Guía de costos de reparación de estuco
  • Muckrakers (Español)
  • Precision Oncology (Español)

Archivos

  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 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.