在浏览器中,eval
的JavaScript使用通常被称为“邪恶”。 Nicholas C. Zakas提出了eval() isn’t evil, just misunderstood的案例,并涵盖了可调试性,性能和安全性主题。 Google Chrome Content Security Policy文档提到默认政策会停用eval
,并且要求您要求{re}重新启用'unsafe-eval'
。
作为测试案例,我从Chrome开发人员工具JavaScript控制台运行了以下内容。看看delete window.eval
> eval("1+1")
2
> window.eval("1+1")
2
> delete window.eval
true
> eval("1+1")
ReferenceError: eval is not defined
> window.eval("1+1")
TypeError: undefined is not a function
其他可能会增强安全性并破坏依赖eval
的第三方代码,执行delete window.eval
会产生什么其他影响?