js报错:Maximum call stack size exceeded error

盖晋
2023-12-01

问题:

前端页面报错:RangeError: Maximum call stack size exceeded  翻译是最大堆栈超过了最大值的意思

我的代码:

function getData(){
    ....
    success:function(rtdata){
            afterRendData(arg1,arg2)
    }
}

function afterRendData(arg1,arg2){
    ...
    if(arg1==arg2|| arg1<arg2){
            getData();
    }
}

原因:

afterRendData()方法中调用getData()时未重置参数arg1和arg2,所以(arg1==arg2|| arg1<arg2)总是true,这样形成了死循环,造成内存溢出

解决:

在调用getData()之前重置arg1和arg2,错误解决;所以如果前端报出了该错误时,建议检查一下代码看看有没有形成死循环的地儿(死循环有可能是逻辑错误导致的,也有可能是粗心,哪段代码写错了而间接导致的...);


 类似资料: