“Uncaught RangeError: Maximum call stack size exceeded“的解决方法
现象
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630152136749.png)
猜想的原因
js中存在函数的死锁
过程
查看页面中的函数,并没有死锁。
发现页面加载到一个下拉框就不显示了,怀疑是下拉框渲染的问题。
代码
for (var i = 0; i < selectDatas.length; i++) {
html += "<option>" + selectDatas[i].name + "</option>";
}
解决
渲染下拉框的代码是使用for循环拼起来的,当大量的数据被拼起来后,会存在调用栈中。
经测试,谷歌浏览器的调用栈深度在130000次左右。
问题是selectDatas.length超过了130000,所以出现了调用栈的溢出。