Código fatorial funciona, mas por que
Estou resolvendo um problema fatorial em que a função pega um número e retorna o fatorial desse número.
O problema que estou enfrentando é que o código funciona, mas não sei por quê. Não há loops para chamá-lo de volta depois que o código for executado e nem tenho certeza de onde o valor atual está sendo armazenado. executando com um valor de n-1, portanto, um número a menos que o tempo anterior, no entanto, ainda não vejo como o valor está sendo armazenado para multiplicar cada número pelo valor atual. Mesmo se eu registrar o valor atual de n após cada execução, tudo o que recebo são os números 10 e um. Eu acho que o valor atual mudaria para o valor multiplicado.
Novamente, esse código funciona perfeitamente, só preciso entender o porquê.
function factorial(n) {
if (n === 0) {
return 1;
}
console.log(n);
return n * factorial(n - 1);
}
factorial(10);