经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded
来源:cnblogs  作者:西岭千秋雪  时间:2019/3/20 8:48:30  对本文有异议

  这几天项目运行报了个错: 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 在后续递归执行中一直得不到更新,永远是最开始调用的值,从而递归循环一直转不出来,导致无限循环,造成堆栈溢出。

  ,错误原因如图所示。

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

原文链接:http://www.cnblogs.com/donghuang/p/10558705.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号