InternalError: too much recursion

Mensaje

InternalError: too much recursion

Tipo de error

¿Qué ha ido mal?

Una función que se llama a sí misma es una función recursiva. Podemos decir que la recursión es análoga a un bucle. Ambos ejecutan el mismo código varias veces y ambos requieren de una condición de fin (para evitar un bucle infinito o recursión infinita). Cuando hay recursión infinita o mucha recursión, JavaScript lanza este error.

Ejemplos

Esta función recursiva se ejecuta 10 veces, debido a la condición de salida.

js
function loop(x) {
  if (x >= 10) {
    // "x >= 10" es la condición de salida
    return;
  }
  // hacer cosas
  loop(x + 1); // llamada recursiva
}
loop(0);

Si establecemos esta condición para un valor muy alto, no funcionará:

js
function loop(x) {
  if (x >= 1000000000000) {
    return;
  }
  // hacer cosas
  loop(x + 1);
}
loop(0);

// InternalError: too much recursion (demasiada recursión)

See also