首页 > 代码库 > js错误--Uncaught RangeError: Maximum call stack size exceeded

js错误--Uncaught RangeError: Maximum call stack size exceeded

在开发中的一次调试出现该错误,同时浏览器卡死。

查了下原因,说因为不恰当的代码,导致了递归或是死循环,栈溢出,所以浏览器卡死了。

最后发现,没有给方法传入定义好的变量。

以下代码中operatorType和techtitleType并不是定义的变量:

selectDictName(operatorType,l.operatorType);
selectDictName(techtitleType,l.techtitleType);
selectDictName("schoolingType",l.schoolingType);
selectDictName("certificateType",l.certificateType);
//查询出数据字典名称
function selectDictName(dataKey,value){
    $.ajax({
        type:‘POST‘,
        url: jypath +"/operator/selectDictName", 
        data: {dataKey:dataKey,value:value},
        dataType: ‘json‘,
        async:false,
        success: function(data){
            var name = data.obj;
            $("#acForm input[name$=‘"+dataKey+"‘]").val(name);
        }
    }
    );
}

 

在执行时报错:
技术分享

 

解决方法:

selectDictName("operatorType",l.operatorType);
selectDictName("techtitleType",l.techtitleType);
selectDictName("schoolingType",l.schoolingType);
selectDictName("certificateType",l.certificateType);
selectDictName("levelType",l.levelType);

即可

技术分享

 

js错误--Uncaught RangeError: Maximum call stack size exceeded