如何检查'调试器;' 关键字存在?

Joh*_*nGa 10 javascript

有时一些开发人员忘记删除debugger;javascript代码,并在IE上产生javascript错误.if(window.console){console.log('foo');}如果调试器存在,您如何检查(如控制台:)

顺便说一句:我不想检测浏览器是否是IE,如果可能我想要一个通用的方法谢谢,

Thi*_*ter 13

你不能.

最好的解决方案是在版本控制系统中添加一个钩子,以防止包含debugger; 语句的代码被提交/推送.

要求您的开发人员debugger;在提交之前搜索或至少仔细查看差异也是一种解决方案 - 但不如VCS中的硬拒绝那样有效.


csp*_*ode 5

您可以尝试编译声明debugger为局部变量的函数.如果debugger保留为关键字,JS引擎将抛出一个可以捕获的错误.

var debuggerIsKeyword = false;
try {
    new Function("var debugger;");
} catch(e) {
    debuggerIsKeyword = true;
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定知道关键字是否存在实际上是有帮助的.