开发者问题收集

未捕获 RangeError 的原因:超出最大调用堆栈大小[关闭]

2016-05-31
2401

我的 JS 代码中出现此错误 Uncaught RangeError: Maximum call stack size reached ,我想知道导致此错误的原因是什么。

Uncaught RangeError: Maximum call stack size exceeded
[Symbol.replace]                    @ (program):405
replace                             @ (program):134
n.extend.camelCase                  @ jquery-1.12.3.min.js:2
R                                   @ jquery-1.12.3.min.js:3
n.extend._data                      @ jquery-1.12.3.min.js:3
n.extend.queue                      @ jquery-1.12.3.min.js:3
n.extend.dequeue                    @ jquery-1.12.3.min.js:3
(anonymous function)                @ jquery-1.12.3.min.js:4
n.extend.each                       @ jquery-1.12.3.min.js:2
n.fn.n.each                         @ jquery-1.12.3.min.js:2
n.fn.extend.stop                    @ jquery-1.12.3.min.js:4
2个回答

这可能是因为您在某处有一个 无限递归

您可以使用

(f=> f(f)) (f=> f(f))

// Uncaught RangeError: Maximum call stack size exceeded
轻松复制此问题

除非您发布代码,否则我们不可能为您提供更具体的帮助

Mulan
2016-05-31

如果您在此处发布代码,将会更有帮助。

原因可能有很多,

  1. 当您遇到无限循环时,也会出现此错误。请确保您没有任何无休止的递归自引用。
  2. 您正在创建数千个 HTML 元素,或绑定数千个事件
  3. 永无止境的函数递归
  4. 永无止境的事件递归或自定义事件处理程序的触发

此外,您可能会获得有关 chrome 或 firefox 调试器中发生这些异常的位置的更多信息,您可以分享发生此错误的代码,我们可以为您提供帮助。

Parag Bhayani
2016-05-31