Javascript 修复未捕获的引用错误

Javascript 修复未捕获的引用错误,javascript,Javascript,修复未捕获引用错误的一般解决方案是什么 我正在创建一个函数,以确保调试代码进入生产环境。但在某些情况下,变量不存在,但调试代码仍然存在。在这种情况下,它不应该停止js function debug(data, type){ if(type == 'alert' && mode !== 'production'){ alert(data); } else if(type == 'halt' && mode !== 'product

修复未捕获引用错误的一般解决方案是什么

我正在创建一个函数,以确保调试代码进入生产环境。但在某些情况下,变量不存在,但调试代码仍然存在。在这种情况下,它不应该停止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

您应该避免在生产环境中运行调试代码

最好是有一个删除它的构建过程,但包装调试调用的简单标志也可以

window.DEBUG = true;

//...

if (DEBUG) {
    debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false
}
这将比到处测试未声明的变量更干净


毕竟,调试的一部分是寻找对未声明变量的意外访问。因此,在调试时,我们应该希望看到那些引用错误,以便能够修复它们。

debug(typeof xyz==“undefined”?undefined:xyz)也许吧?你可以用macr。。。哦,等等。你为什么要在生产环境中运行调试代码?你在哪里定义xyz?@lan难道没有更好的方法吗
try{
 if(Debug){
    debug(data,code)
 }
}
catch{
// swallow or do whatever you want
}