在下面的递归函数中,我希望函数最后返回 "arrived"
,但它返回 undefined
。那不是当执行进入 if
块时代码应该返回吗?感谢您对此的评论。
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 函数返回 undefined?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50119240/