5

什么是修复的一般解决方案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
4

2 回答 2

2

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

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

window.DEBUG = true;

//...

if (DEBUG) {
    debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false
}

这将比到处测试未声明的变量更干净。

毕竟,调试的一部分是发现意外访问未声明的变量。因此,在调试时,我们应该希望看到那些 ReferenceErrors 以便我们修复它们。

于 2013-05-31T15:06:24.167 回答
0
try{
 if(Debug){
    debug(data,code)
 }
}
catch{
// swallow or do whatever you want
}
于 2013-05-31T15:09:50.327 回答