inner conditional: 5
inner conditional: 4
inner conditional: 3
inner conditional: 2
inner conditional: 1
0
创建上述输出的函数如下,我完全理解它是如何工作的。了解递归循环,返回倒数
function loop(counter){
if(counter > 0){
console.log("inner conditional: " + counter);
return loop(counter - 1)
}
console.log(counter);
return counter
}
loop(5)
当功能被修改,使得所述内部状态不返回的console.log显示以下的功能。
inner conditional: 5
inner conditional: 4
inner conditional: 3
inner conditional: 2
inner conditional: 1
0
1
2
3
4
5
以下是负责上述输出的功能。
function loop(counter){
if(counter > 0){
console.log("inner conditional: " + counter);
loop(counter - 1)
}
console.log(counter);
return counter
}
loop(5)
我不明白这一点。我只想解释一下发生什么事情来创建扩展前向计数。
我用下面的工具来显示逐步执行代码,我仍然没有“搞定”它:http://pythontutor.com/javascript.html#mode=display
简单,去掉'return',当它结束调用'循环(计数器1)'它继续最后一个'console.log',即使计数器是'> 0' ...你可以使用'else console.log(counter);' – Giovazz89
我不认为你理解这个问题。我想解释一下为什么数字会前进五次。如果你使用我链接到的代码执行工具,我想要解释一下步骤20 –
之后发生了什么,这正是我的评论的意思,但也许我解释得很糟糕:调用'loop(counter-1)'在调用之后作为'console.log',意味着它将从最内层的(最后一个)调用开始“记录”,并在内层完成时从最旧的函数调用中打印出来......对不起不是精确的,希望它有帮助 – Giovazz89