Не могу понять почему получаеться 8? Как программа работает? Что за чем выполняеться? В ступор вводит 3 строчка return 1; Почему не вернется просто число 1?)
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
console.log(power(2, 3));
Любое число в нулевой степени, за исключением нуля, равно единице. Потому, если exponent == 0 (это в Вашем случаи степень), то функция возвращает 1, ну а в ином случаи возводит число base в степень exponent.
P.S. А говорят математика программистам не нужна:)
P.P.S. Про рекурсию хорошо рассказано тут https://learn.javascript.ru/recursion
Продвижение своими сайтами как стратегия роста и независимости