Javascript 函数变量';s值在返回后变为未定义
我写了一个函数来查找9,99,999,9999中的数字。。。其中,数字的数字阶乘(9!+9!表示99)之和小于数字本身: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
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);