Função Recursiva em Javascript
Alguém poderia me tirar uma dúvida !
function recursiveFatorial(x){
if (x == 0)
return 1;
else
return x * recursiveFatorial(x-1);
}
console.log(recursiveFatorial(10));
/*
Output
10! 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 3628800
1x Que o codigo rodar, o valor de X = 10 e o resultado da expressao return 10 * recursiveFatorial(10-1); = 3628800
2x X = 9 return 9 * recursiveFatorial(9-1); = 40320
3x X = 8 return 8 * recursiveFatorial(8-1); = 5040
4x,5x,6x... e assim por diante, minha dúvida é:quando terminar de rodar o código na 9x(ou quando o index X for = 1) o resultado que a expressao -> [ return 1 * recursiveFatorial(1-1); ] vai retornar tem o valor de 1, na proxima vez que o codigo rodar X vai ter o valor de 0 ! Então a condição (x == 0) vai ser true e retornar 1; e não o resultado que está sendo printado no console de 3628800 ! Gostaria de saber aonde está sendo "armazenado" esse valor 3628800!
*/
Não sei se consegui explicar direito! De qualquer forma se alguém poder me ajudar entender como o console esta emitindo esse valor ficarei muito grato.
Muito obrigado,
Abraços.
Discussão (2)
Carregando comentários...