当前位置: 移动技术网 > IT编程>网页制作>Html5 > Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded

Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded

2019年03月20日  | 移动技术网IT编程  | 我要评论

赵常宁,泗县人民政府,谜语人

  这几天项目运行报了个错: uncaught rangeerror: maximum call stack size exceeded,刚开始看到 "returnnodeparameter",以为是 "returnnodeparameter" 方法报错,但转眼看到后面 "maximum call stack size exceeded",就明白了,这明显是 超过了最大堆栈量(堆栈溢出)

  

 

  堆栈溢出的产生是由于过多的函数调用,导致调用堆栈无法容纳这些调用的返回地址,一般容易在递归中产生。所以这种错误一般是在递归函数当中出现,结合报错提示中提到的 returnnodeparameter方法,查看 returnnodeparameter方法自身以及 returnnodeparameter内其他调用方法中是否存在递归函数调用。自己写的代码,那些是递归函数那些不是,心里都有数,既然明确了是递归函数的锅,那就从调用的递归函数中找原因就是。

  产生错误原因:问题原因很简单,在 if (temp[i].pid !== '0') 中将本该写成  this.selectednodepid 误写成了 this.selectednode,导致 this.selectednodepid 在后续递归执行中一直得不到更新,永远是最开始调用的值,从而递归循环一直转不出来,导致无限循环,造成堆栈溢出。

  ,错误原因如图所示。

  归根结底是参数和参数条件判断的错误导致递归函数一直循环递归调用,无法停止,从而只有在超出浏览器最大堆栈量(内存溢出)时,浏览器抛出错误才能停止。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网