Resultado Infinity JavaScript [SOLUCIONADO]

Comprendiendo el concepto de Infinito en JavaScript

En el mundo de la programación, y especialmente en JavaScript, nos encontramos en ocasiones con resultados que pueden resultar contraintuitivos para aquellos que están comenzando a explorar este lenguaje. Uno de estos es el valor Infinity, que representa un límite numérico que es más grande que cualquier otra cantidad.

¿Qué provoca la aparición de Infinity?

Este resultado se produce al dividir cualquier número positivo entre cero, entre otras operaciones matemáticas que trascienden los límites de los números representables. Veamos un ejemplo básico:

let resultado = 1 / 0;
console.log(resultado); // Muestra "Infinity" en la consola

Además, JavaScript cuenta con la global property Infinity, que permite verificar si una operación ha superado los límites del almacenamiento numérico.

let maxNumber = Number.MAX_VALUE;
console.log(maxNumber * 2); // Muestra "Infinity" en la consola


El valor de Infinity y su tipo

Es importante destacar que JavaScript considera a Infinity como un tipo numérico, lo que implica que puede ser utilizado en operaciones matemáticas como otros números:

let infinitePlusOne = Infinity + 1;
console.log(infinitePlusOne); // Todavía da como resultado "Infinity"

Así mismo, este comportamiento está en concordancia con el estándar IEEE para la aritmética de punto flotante, que es el utilizado por JavaScript para representar números.

Infinity negativo en JavaScript

Del mismo modo existe el valor -Infinity, que simboliza un infinito negativo, y se obtiene al realizar operaciones equivalentes a las que resultarían en un Infinity, pero con números negativos.

let negativeInfinity = -1 / 0;
console.log(negativeInfinity); // Muestra "-Infinity" en la consola


Comparaciones y operaciones con Infinity

El valor de Infinity también se utiliza en comparaciones, mostrando algunas peculiaridades que deben ser consideradas:

console.log(Infinity > 1234567890); // Muestra "true"
console.log(-Infinity < -1234567890); // Muestra "true"

Todas las operaciones aritméticas regulares tienen el resultado esperado cuando involucran a infinito, excepto cuando se está tratando de definir operaciones que matemáticamente no tiene sentido, por ejemplo, dividir infinity por infinity:

let undefinedResult = Infinity / Infinity;
console.log(undefinedResult); // Muestra "NaN" porque no es una operación matemáticamente válida


Detección de valores infinitos en código

Para detectar valores infinitos en el flujo de nuestro código JavaScript, podemos utilizar isFinite(), una función que verifica si un número es finito:

console.log(isFinite(Infinity)); // Muestra "false"
console.log(isFinite(-Infinity)); // Muestra "false"
console.log(isFinite(999)); // Muestra "true"

A su vez, la función isNaN() puede ayudarnos a verificar resultados indefinidos, que son consecuencia de operaciones no válidas con Infinity.

console.log(isNaN(Infinity - Infinity)); // Muestra "true"


Implicaciones de la manipulación de infinitos en algoritmos

El uso de Infinity en algoritmos y estructuras de datos puede ser muy útil. Por ejemplo, en la inicialización de valores para algoritmos de búsqueda en los cuales se requiere un valor que pueda ser fácilmente superado por cualquier elemento del conjunto a evaluar:

let minValue = Infinity;
let numbers = [45, 25, 78, -10, 4, 99];

numbers.forEach(function(number){
  if(number < minValue){
    minValue = number;
  }
});

console.log(minValue); // Muestra el número más pequeño del array

Cuidados y buenas prácticas al utilizar Infinity

A pesar de ser una herramienta potente, el uso de Infinity tiene sus riesgos. Es vital entender cuándo y cómo utilizarlo para evitar comportamientos inesperados en el código. Por ejemplo, cuidar su uso en bucles o ciclos, ya que podría ocasionar loops infinitos si no se establecen las condiciones de salida adecuadas.

Evitar cambios inesperados es crucial. Es recomendable no modificar el valor de Infinity ya que es una propiedad global:

Infinity = "¡Ya no soy infinito!";
console.log(1 / 0); // Muestra "¡Ya no soy infinito!", en vez de "Infinity"

Es aconsejable siempre realizar chequeos de tipo y valor para garantizar que el programa maneje Infinity de la forma esperada.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad