Javascript 函数变量';s值在返回后变为未定义

Javascript 函数变量';s值在返回后变为未定义,javascript,Javascript,我写了一个函数来查找9,99,999,9999中的数字。。。其中,数字的数字阶乘(9!+9!表示99)之和小于数字本身: function findLimit(starting_limit){ var starting_limit_string = starting_limit.toString(); var limit_factorial = factorial(9) * starting_limit_string.length; if(limit_factorial

我写了一个函数来查找9,99,999,9999中的数字。。。其中,数字的数字阶乘(9!+9!表示99)之和小于数字本身:

function findLimit(starting_limit){
    var starting_limit_string = starting_limit.toString();
    var limit_factorial = factorial(9) * starting_limit_string.length;
    if(limit_factorial > starting_limit){
        var new_starting_limit = (starting_limit * 10) + 9;
        findLimit(new_starting_limit);
    } else {
        return starting_limit;
    }
}

var final_limit = findLimit(9);
然而,最终的_限制结果是未定义的。尽管如此,当我将断点设置为“返回起始限制”时,起始限制明确定义为9999999


这是怎么回事?当my函数返回时,为什么已定义的值会变为未定义的值?

您忘记了此行的
返回:


您忘记了此行的
返回值


您没有在
if
中返回,因此函数返回
undefined
,您没有在
if
中返回,因此函数返回
undefined
,在满足else条件之前它不会递归运行吗?@SterlingArcher-它已经递归运行,直到满足else条件。此更改意味着您实际上得到了要查找的值。谢谢--我知道这将是一个愚蠢的更改,但我在查找它时遇到了一个块。在满足else条件之前,它不会递归运行吗?@SterlingArcher-它已经递归运行,直到满足else条件。这个改变意味着你实际上得到了你想要的值。谢谢你——我知道这会是一个愚蠢的改变,但是我在寻找它的时候遇到了一个障碍。
findLimit(new_starting_limit);