javascript - 为什么这个递归 javascript 函数返回未定义?

标签 javascript function recursion undefined

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

相关文章:

function - 如何使用参数调用函数,从函数返回并将返回的内容分配给变量?

function - 如何在没有冲突的情况下将一个范围内的数字映射到同一范围内的另一个数字?

algorithm - Mergesort - 递归调用的最大数量

Java 递归 : Example

r - Julia - 相当于 R 中的递归 sapply 函数

javascript - react 一个组件正在改变类型复选框的不受控制的输入以被控制

javascript - 将自定义确认消息添加到标准 joomla 3.0 管理工具栏按钮

javascript - CouchDB:有条件地将 Map/Reduce 输出中的值更改为负值

javascript - 在 ASP.NET 文本框中使用 javascript

function - make函数怎么可以带三个参数呢?