JavaScript递归基础案例

ccn*_*xon 2 javascript recursion

对不起,我知道这可能不是一个聪明的问题,但它让我发疯.鉴于此递归函数,为什么1不会一直返回?我的意思是,最终指数将达到0!

function power(base, exponent) {
  if (exponent == 0)
    return 1;
  else
    return base * power(base, exponent - 1);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助.

dme*_*lio 7

理解的最佳方式是遍历代码.让我们说你做权力(2,3).

那是做什么的?

2 * power(2,2) 
//Which expands to
2 * 2 * power(2,1)
//Which expands to
2 * 2 * 2 * power(2,0)
//Which expands to 
2 * 2 * 2 * 1
Run Code Online (Sandbox Code Playgroud)