Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
Recursión en la pregunta de JavaScript: ¿cómo afecta la posición de console.log aquí al orden en que se devuelven los valores?

Soy bastante nuevo en programación y estoy aprendiendo sobre recursividad básica por primera vez. Un resultado que obtuve jugando con una pregunta de práctica en JavaScript es realmente hornear mis fideos.

 function countDownRecursive(n) { if (n == 0) { console.log('Hooray!') return } else { console.log(n) countDownRecursive(n-1) console.log(n) } }

La salida de ie, countDownRecursive(3) es

3 2 1 ¡Hurra! 1 2 3

Mi pregunta es ¿por qué poner console.log() después de countDownRecursive(n-1) como este hace que JS registre los valores al revés?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En la llamada inicial, se ingresa el else y

 console.log(n) countDownRecursive(n-1)

3 está registrado. Luego, la función inicial countDownRecursive(3) se suspende mientras se llama a countDownRecursive(3-1) . La pila ahora está compuesta por countDownRecursive(3) .

Lo mismo sucede con countDownRecursive(2) . 2 está registrado y, con su llamada recursiva, la pila ahora se compone de countDownRecursive(2) y countDownRecursive(3) .

Y así. Al final, con countDownRecursive(0) , la pila es

 countDownRecursive(0) <-- current function countDownRecursive(1) countDownRecursive(2) countDownRecursive(3)

y 3 2 1 ha sido registrado.

En 0, no hay más recursividad, así que Hooray ! Ese countDownRecursive(0) más interno finaliza, y luego el countDownRecursive(1) reanuda en el punto en el punto de la llamada recursiva:

 countDownRecursive(1-1) // this line just finished console.log(1)

entonces 1 se registra y esa función finaliza.

Las funciones se siguen reanudando, registrando y saliendo, hasta que la pila está vacía y te quedan registros de

 3 2 1 Hooray! 1 2 3
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda