javascript - 了解这个问题的递归?
问题描述
这不是与某个问题相关的问题,但我很难理解这个问题的输出和程序流程!
function one(n) {
if(n == 1) {
return
}
n--;
console.log(n);
return two(one(n), one(n))
}
function two(one, two) {
console.log(one);
console.log(two);
}
one(9);
首先,输出并不是我认为应该的,其次,我很困惑在执行第 9 行时,由 1 描述的函数 one(n) 是否会运行并耗尽,然后是由 1 描述的函数 one(n) 2将运行.....或两者将同时运行(1和2)??
它就像一个函数中的两个函数。
为什么函数 two() 将 n 值输出为未定义而不是适当的递减值?
解决方案
我很困惑在执行第 9 行时,由 1 描述的函数 one(n) 是否会运行并耗尽,然后由 2 描述的函数 one(n) 是否会运行..
是的。在 JavaScript 中没有两条语句同时执行。
为什么函数 two() 将 n 值输出为未定义而不是适当的递减值?
因为它确实输出了one(n)
调用的结果,并且函数one
没有返回值。
推荐阅读
- go - 如何在官方 neo4j go 驱动程序中解析结果?
- python - 获取 usr/bin/python2.7:没有这样的文件或目录
- php - 如何在wordpress中将新的用户元键插入数据库
- python - 特定 ISO 格式的 Pandas 日期时间转换
- python-2.7 - 如何使用ascii将字符更改为之前的字符
- c - 从函数中获取随机字符
- debugging - 程序集:如何生成 .section .debug_info?
- c# - unity移除碰撞物理效果,还要检查是否有碰撞
- asciidoc - 如何在 asciidoc 内联锚中转义“/”字符?
- linux - awk(或 sed 或 grep)剪切参数、等号和值