Так что мне очень трудно понять рекурсию, я не понимаю, как возврат 1 в качестве последнего шага завершает следующий код. Почему при возврате 1 в качестве последнего шага возвращаемое значение не присваивается «1» вместо «27»?
Я попытался объяснить это сам, написав псевдокод, но попытка заставила меня понять, что я действительно понятия не имею, что происходит. Если бы помимо объяснения был предоставлен какой-то псевдокод, это было бы потрясающе. Спасибо.
function solveExponent(num, exp) {
if (exp === 0) {
// this causes the stack to well you know exceed the limit
// letsReturnOne();
return 1; // so i don't understand how this is any different
}
return num * solveExponent(num, exp - 1);
}
alert(solveExponent(3, 3));
function letsReturnOne() {
return 1;
}
alert(letsReturnOne());