在下面的递归函数中,我希望函数在最后返回 "arrived"
,但它返回 undefined
。是不是当执行进入 if
block 时代码应该返回?感谢您对此的评论。
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);
}
最佳答案
第一个函数不返回值,因为所有代码路径 都必须返回一个值。在第一行之后,没有 return
语句。它仅在使用 0
作为参数调用时返回一个值。
关于javascript - 为什么这个递归 javascript 函数返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50119240/