Cuándo no usarla
JavaScript · Unidad 11: Recursión
- Plan completo
- JavaScript
- 10 ejercicios
Cada llamada que espera ocupa un lugar en la pila, y la pila tiene límite. Si una función se llama sin parar, la pila se llena y JavaScript truena con un RangeError.
Su mensaje, en inglés, dice "Maximum call stack size exceeded": se pasó del tamaño máximo de la pila.
function sinFin(n) {
return sinFin(n + 1);
}
try {
sinFin(1);
} catch (error) {
console.log(error.name);
}Imprime
RangeError
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Predice la salida
¿Qué imprime este código?
2. Opción múltiple
¿Qué pasa con
cuenta(5)?3. Encuentra el bug
Este programa debería imprimir 8 (2 × 2 × 2). ¿Qué línea tiene el error?
4. Opción múltiple
sumaHasta(100000)truena, perosumaHastasí tiene caso base. ¿Por qué truena?5. Completa el código
Completa el factorial con un ciclo para que imprima 120.
6. Predice la salida
Así se voltea un texto con un ciclo. ¿Qué imprime?
7. Ordena las líneas
Ordena
potenciacon un ciclo, sin recursión, para quepotencia(2, 3)dé 8.8. Encuentra el caso que falla
sumaHasta(n)debería sumar de 1 an, o dar 0 sines 0 o negativo. ¿Con qué llamada falla?9. Opción múltiple
¿En cuál de estos casos conviene más la recursión que un ciclo?
10. Predice la salida
En la serie de Fibonacci, cada número es la suma de los dos anteriores: 0, 1, 1, 2, 3, 5, 8… Esta función cuenta sus propias llamadas. ¿Qué imprime?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.