在下面的递归函数中,我希望函数最后返回 "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/

10-12 07:34
查看更多