Los valores Infinity y NaN number en JavaScript

Cómo comentar el código en JavaScript de forma correcta
Cómo comentar el código en JavaScript de forma correcta
3 de marzo de 2023
Cómo instalar la extesión zip de PHP en CentOS
Cómo instalar la extensión zip de PHP en CentOS
14 de marzo de 2023
Cómo comentar el código en JavaScript de forma correcta
Cómo comentar el código en JavaScript de forma correcta
3 de marzo de 2023
Cómo instalar la extesión zip de PHP en CentOS
Cómo instalar la extensión zip de PHP en CentOS
14 de marzo de 2023

En esta ocasión vamos a hablar sobre los valores Infinity y NaN number en JavaScript. Valores que usamos para representar aquellos valores numéricos que por alguna razón no podemos representar con el tipo number de JavaScript.

El tipo number en JavaScript

En JavaScript tenemos el tipo number. Tipo que representa a todos los números, enteros y flotantes por lo que el valor 1 es igual a 1.0 por poner un ejemplo. En JavaScript, el tipo number es representado por 64, es igual que el tipo double de Java.

El valor Infinity

JavaScript contempla el valor Infinity para representar aquellos número mayores a los que puede represnetar con el tipo number, en este caso, número mayores a

1.79769313486231570e+308 // Si no me he equivocado :)

En caso de que hagamos alguna operación que como resultado sea mayor a este valor, obtendremos un bonito:

Infinity

Veamos un ejemplo que podemos ver en la web de desarrolladores de Mozilla:

const maxNumber = Math.pow(10, 1000); // Número máximo positivo

if (maxNumber === Infinity) {
  console.log('Hemos conseguido el valor Infinity!');
  // Salida experada: "Hemos conseguido el valor Infinity!"
}

El valor NaN

El valor NaN, es un valor especial que puede tomar el tipo number en JavaScript. Este valor NaN es obtenido como resultado de alguna operación que no ha devuelto un valor «normal», cuando ocurre algún tipo de error.

Operaciones y resultados esperados para Infinity y NaN

Ahora que ya sabes qué son cada uno, podemos hacer un simple ejercicio para poder validar lo que ya sabemos. Voy a poner una serie de ejemplos que tu puedes ejecutar en la consola de las herramientas de desarrollo del navegador y puedes validar el resultado esperado que también te indico en la misma línea a modo de comentario.

Comprobación de tipo:

typeof NaN; // 'number'
typeof -NaN; // 'number'
typeof Infinity; // 'number'
typeof -Infinity; // 'number'

Podemos acceder al valor de forma directa o través de Number:

NaN; // NaN
Number.NaN; // NaN
Infinity; // Infinity
Number.POSITIVE_INFINITY; // Infinity
Number.NEGATIVE_INFINITY; // -Infinity

Comprobaciones que podemos hacer:

Infinity > 1000; // true
Infinity < 1000; // false
Infinity > Number.MAX_SAFE_INTEGER // true
Infinity > Number.MAX_VALUE // true

Como vemos, lo podemos tratar como un valor numérico más. De la misma forma podemos reliazar operaciones:

100 + Infinity; // Infinity;
Infinity + Infinity; // Infinity
Infinity * Infinity; // Infinity

Ahora, debes tener en cuenta que con ciertas operaciones con números grandes, como Infinity, puedes tener resultados inesperados (NaN):

Infinity / Infinity; // NaN

Conclusión

Ya sabemos que son y qué representan los valores Infinity y NaN number en JavaScript. Cuando trabajamos con un lenguaje es importante que lo conozcamos con la mayor profundidad que nos sea posible para que podamos contemplar casos borde o edge cuando se producen situaciones anormales. Puedes aprender más en nuestra sección de Desarrollo Web o en la sección específica de JavaScript.

¡Espero que te haya sido de utilidad!

Antonio J. Galisteo
Antonio J. Galisteo
Soy Antonio J. Galisteo. Ingeniero de software con amplia experiencia en desarrollo frontend, backend, aplicaciones móviles y de escritorio.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los valores Infinity y NaN number en JavaScript
Este sitio web usa cookies para mejorar tu experiencia. Al navegar por este sitio aceptas nuestra Política de Protección de Datos.
Leer más