Пример:

аю проблему факториала, где функция берет число и возвращает факториал этого числа.

Проблема, с которой я сталкиваюсь, заключается в том, что код работает, но я не знаю почему. Там нет циклов, чтобы вызвать его обратно после выполнения кода, и я даже не уверен, где хранится текущее значение. Если я прав, я предполагаю, что функция перезапускается каждый раз, когда она достигает возврата, и это работает со значением n-1, так что на одно число меньше, чем в предыдущий раз, однако я до сих пор не вижу, как значение сохраняется для умножения каждого числа на текущее значение. Даже если я записываю текущее значение n после каждого запуска, все, что я получаю, это числа от 10 до одного. Я думаю, что текущее значение изменится на умноженное значение.

Опять же, этот код работает отлично, мне просто нужно понять, почему.

function factorial(n) {
    if (n === 0) {
        return 1;
    }
    console.log(n);
    return n * factorial(n - 1);
}

factorial(10);

Ответы на вопрос(1)

Ваш ответ на вопрос