修复 Uncaught ReferenceError
的一般解决方案是什么。
我正在创建一个函数来确保调试代码投入生产。但是可能存在变量不存在但调试代码仍然存在的情况。在这种情况下,它不应该停止js。
function debug(data, type){
if(type == 'alert' && mode !== 'production'){
alert(data);
}
else if(type == 'halt' && mode !== 'production'){
debugger;
}
else{
console.debug(data);
}
}
debug(xyz) //xyz doesn't exists
答案 0 :(得分:2)
您应该避免在生产中运行调试代码。
最好是有一个删除它的构建过程,但是包装调试调用的简单标志也可以。
window.DEBUG = true;
//...
if (DEBUG) {
debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false
}
这比在整个地方测试未声明的变量更清晰。
毕竟,调试的一部分是发现对未声明变量的意外访问。因此,在调试时,我们应该希望看到那些ReferenceErrors,以便我们可以修复它们。
答案 1 :(得分:0)
try{
if(Debug){
debug(data,code)
}
}
catch{
// swallow or do whatever you want
}