学无先后,达者为师

网站首页 编程语言 正文

使用递归时返回结果是undefined的原因和解决办法

作者:coderxian 更新时间: 2021-12-17 编程语言

今天在写一个算法题时使用了递归,但是在打印函数调用结果时一直都是undefined,检查各地方都没有发现问题,最后通过查阅相关资料,发现了问题所在

function fn(n) {
    n = n + 1;
    if (n > 10) {
        return n;
    }
    // 入口
    fn(n);
}
console.log(fn(0));

以上代码的打印结果是undefined,这令我感到很疑惑,后来查阅相关资料,发现在递归入口处,也是需要加上return的

function fn(n) {
    n = n + 1;
    if (n > 10) {
        return n;
    }
    // 入口
    return fn(n);
}
console.log(fn(0)); // 11

这样的打印结果就是正常的

原因:我们在递归入口处调用函数时,如果不使用return,那递归内部函数的值会一直卡在递归入口函数调用这里永远无法返回到外层去。

原文链接:https://blog.csdn.net/IOT123/article/details/122101440

栏目分类
最近更新