【发布时间】:2018-05-01 15:28:03
【问题描述】:
在下面的递归函数中,我希望函数在最后返回"arrived",但它却返回undefined。这不是当执行进入if 块时代码应该返回吗?感谢您的 cmets。
function myFun(i){
if(i===0){return ('arrived');}
i = i - 1;
myFun(i);
}
如果我将代码更改如下,那么它将返回"arrived",但仍然不知道为什么上面没有返回"arrived"。
function myFun(i){
if(i===0){return ('arrived');}
i = i - 1;
return myFun(i);
}
【问题讨论】:
-
@anthony, i 在参数中发送
-
如果你有一个函数
foo,它只调用一个函数bar,它返回一个值"BAR",你会期望foo返回调用的结果吗?bar如果foo没有return声明?function foo() { bar() } function bar() { return "bar" } foo();递归函数也不例外。 -
你的例子完全有道理。谢谢!
标签: javascript function recursion undefined