【发布时间】:2021-07-04 11:12:35
【问题描述】:
我正在开发密码生成器,但我不断收到RangeError: Maximum call stack size exceeded
这是什么意思?这是给出此错误的代码...
该代码应该在单击“获取”按钮时获取文本框的值,并在生成随机字符或随机密码时将其用作“允许的字符”然后 console.log 。
function makeid(length) {
var result = [];
console.log(makeid(5));
var chars = document.getElementById("myInput").value;
var characters = chars; //fix this
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result.push(characters.charAt(Math.floor(Math.random() *
charactersLength)));
}
return result.join('');
}
<input type="text" placeholder="Type something..." id="myInput">
<button type="button" onclick="makeid();">Get</button>
【问题讨论】:
-
是
i < length对吗? -
嗯,我知道吗?我觉得应该是……
-
查看代码的每一行并按照流程完成 - 提示,您在函数本身中有一个递归调用。
-
console.log(makeid(5));这是一个没有任何条件的递归调用... -
我不明白你为什么要递归调用
console.log(makeid(5));
标签: javascript html jquery node.js random