--- title: 'InternalError: too much recursion' slug: Web/JavaScript/Reference/Errors/Too_much_recursion tags: - Error - InternalError - JavaScript - Recursiva - Recursividad - Recursión(2) translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion ---
InternalError: too much recursion
{{jsxref("InternalError")}}.
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.
Esta función recursiva se ejecuta 10 veces, debido a la condición de salida.
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á:
function loop(x) { if (x >= 1000000000000) return; // hacer cosas loop(x + 1); } loop(0); // InternalError: too much recursion (demasiada recursión)