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);
ただし、final_limitは未定義です。これは、「return starting_limit」にブレークポイントを設定すると、starting_limitは9999999として明確に定義されます。
ここでは何が起こっていますか?私の関数が返すとき、定義された値がundefinedに変わるのはなぜですか?
そのちょうどまで再帰的に実行されないでしょう – KevBot