javascript - n 的值如何在递归中减小
问题描述
对于下面的递归函数
function pow(x, n) {
if (n == 1) {
return x;
} else {
return x * pow(x, n - 1);
}
}
JS编译器如何确定递归减小n的值?我不会像 n-- 那样减少值;仍然如何在每次调用中自动减少值?
解决方案
n--
等于n = n - 1
whilen - 1
不做任何事情,除非您将其分配给变量。
在这种情况下,您调用pow
函数n - 1
意味着您n - 1
在每次调用中分配了函数的第二个参数。
pow(4, 4(this is n)) => pow(4, 3(this is n) => pow(4, 2(this is n) => pow(4, 1(this is n)
推荐阅读
- python - 从 Pandas 的最后一个日期开始计算每年的最后一个值
- ios - NavigationItem.titleView 没有得到正确的大小
- python - 如何使用python从json格式的键中提取值
- powerbi - 计算汇总表列的累计总和
- jquery - 从下拉菜单中找出点击的选项
- c# - .NET Core 环境变量返回 null
- autosar - 我们如何在 RTE 中为应用层接口分配初始值?
- obfuscation - Dotfuscator 专业版字符串加密不起作用
- java - Tapestry 5.1 中的 AjaxResponseRenderer
- python - 作为子进程 1 运行连续脚本,直到子进程 2 中的循环完成