Un RangeError se lanza en JavaScript cuando un valor no está dentro del conjunto o rango de valores permitidos para una operación determinada. Se ve más comúnmente al crear arrays con longitudes inválidas o al llamar funciones recursivas demasiado profundamente.
Por qué ocurre
- •Pasar un número negativo o no entero al constructor Array.
- •Superar el tamaño máximo del call stack con funciones recursivas profundas.
- •Llamar a toFixed(), toPrecision() o toExponential() con cantidad de dígitos fuera de rango.
- •Usar String.prototype.repeat() con un conteo negativo o no finito.
Ejemplos
Código que causa el error
const items = new Array(-1);Error en la terminal
RangeError: Invalid array length
Cómo solucionarlo
Valida los valores que pasas a las funciones integradas antes de llamarlas. Para la recursión, agrega un caso base y verifica que la entrada se reduzca hacia ese caso base. Usa soluciones iterativas en lugar de recursivas para entradas muy grandes.
Código corregido
// Use a non-negative length
const items = new Array(5);
console.log(items.length); // 5
// Or initialize with values:
const filled = Array.from({ length: 5 }, (_, i) => i);
console.log(filled); // [0, 1, 2, 3, 4]Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis