为什么这个递归的javascript函数返回undefined?

Ada*_*amO 3 javascript recursion function undefined

在下面的递归函数中,我希望函数"arrived"在结束时返回,而是返回undefined.是不是当执行进入if块时代码应该返回?感谢您对此的评论.

function myFun(i){
    if(i===0){return ('arrived');}
    i = i - 1;
    myFun(i);
}
Run Code Online (Sandbox Code Playgroud)

如果我按如下方式更改代码,那么它将返回,"arrived"但仍然不知道为什么上面的内容不会返回"arrived".

function myFun(i){
    if(i===0){return ('arrived');}
    i = i - 1;
    return myFun(i);
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*r B 7

第一个函数不返回值,因为所有代码路径都必须返回一个值.在第一行之后,没有return声明.它仅在使用0as参数调用时返回值.