【发布时间】:2015-10-26 19:34:00
【问题描述】:
我有以下功能:
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);
}
}
现在函数 countup(单独)按我的预期工作。一旦我把它放在 getRange 函数中,它就会停止正常工作。当我在表单中输入一些值(例如 2 和 9)时,控制台中的输出是无穷无尽的 1111111111111111 然后是错误:Uncaught RangeError: Maximum call stack size exceeded.
请指教
【问题讨论】:
-
因为您看到的是
1111111111111111,所以您似乎使用的是字符串而不是整数。尝试将您的 var x, y 变量包装在parseInt中(例如parseInt(document.getElementById("range_form").range_x.value, 10)
标签: javascript recursion uncaught-exception