【问题标题】:password generator getting "RangeError: Maximum call stack size exceeded" [closed]密码生成器获取“RangeError:超出最大调用堆栈大小”[关闭]
【发布时间】: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 &lt; length 对吗?
  • 嗯,我知道吗?我觉得应该是……
  • 查看代码的每一行并按照流程完成 - 提示,您在函数本身中有一个递归调用。
  • console.log(makeid(5));这是一个没有任何条件的递归调用...
  • 我不明白你为什么要递归调用console.log(makeid(5));

标签: javascript html jquery node.js random


【解决方案1】:

删除console.log(makeid(5))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 2018-02-06
    • 2012-08-14
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多