Javascript递归错误-函数中的函数

javascript recursion error - function within a function

本文关键字:函数 递归 错误 Javascript      更新时间:2023-09-26

我有以下函数:

function getRange() {
    // generate a range of values from value up to climit
    // excluding climit
    var countup = function(value, climit) {
        if (value < climit) {
            console.log(value);
            return countup(value + 1, climit);
        }
    };
   // gather input from the form
   var x = document.getElementById("range_form").range_x.value;
   var y = document.getElementById("range_form").range_y.value;
   // Validate the input
    if (isNaN(x) || isNaN(y)) {
        console.log("Both values have to be integers!!!");
    } else {
        // run the countup fonction
        countup(x, y);
    }
}

现在函数计数(它自己)按我的预期工作。一旦我把它放在gerange函数中,它就不能正常工作了。当我在表格中输入一些值(例如:2和9)控制台的输出是无止尽的1111111111111111Uncaught RangeError: Maximum call stack size exceeded.

请告诉

xy为字符串。因此,

  • value + 1引起串联,
  • <进行词法比较(例如,"211111" < "3"为真)

使用parseInt(..., 10):

将输入转换为数字
var x = parseInt(document.getElementById("range_form").range_x.value, 10);