我想知道是否可以通过JavaScript找到,如果调用的eval()有语法错误或不确定的变量,等等......所以可以说我用eval一些任意有没有一种方法来捕获该eval的错误输出?的eval的JavaScript,检查语法错误
回答
您可以测试,看看是否出现错误的确是一个SyntaxError。
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
}
}
按照Mozilla documentation for eval
:
EVAL返回最后计算的表达式的值。
所以我认为你可能是出于运气。此相同的文件还建议不要使用eval
:
的eval()是一个危险的功能,它执行它与调用者的权限通过代码。如果您运行的eval()字符串可能会受到恶意方的影响,那么您最终可能会在您的网页/扩展程序的权限下在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到eval()被调用的范围,这可能导致类似函数不容易受到的攻击。
因此,无论如何,请注意使用此功能之前的风险。
关于eval是邪恶的,黄金法则:不要评估用户输入,只会评估自己定义的字符串,例如:从服务器。是的,MiTM攻击,但如果你不能信任你的服务器,那么你就有更大的问题。对于JSLint,为 – CularBytes 2016-09-16 09:24:53
您可以使用http://www.jslint.com/包含NI写JavaScript中的JavaScript分析器。它会给你许多关于你的代码信息,它可以配置更加放松与否,等等
+1。 :-) – Martijn 2011-02-07 16:11:47
当使用尝试捕捉捕捉特定类型的错误,应该确保其他类型的异常不supressed。否则,如果评估代码会抛出不同类型的异常,它可能会消失并导致代码的意外行为。
我建议书面方式这样的代码:
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
} else {
throw(e);
}
}
请注意, “其他” 一节。
- 1. eval() - 语法错误
- 2. JavaScript eval()语法
- 3. 如何检查javascript语法错误
- 4. Eclipse错误语法检查
- 5. 在Eval()中创建完美的JavaScript语法错误()
- 6. 你的SQL语法有错误;检查
- 7. Eval on responseText失败,语法错误
- 8. PHP MYSQL错误 - “您的SQL语法错误;正确的语法检查......近
- 9. javascript的语法错误
- 10. 语法错误的JavaScript类
- 11. JavaScript语法错误
- 12. Javascript语法错误?
- 13. Javascript语法错误
- 14. Javascript语法错误
- 15. JavaScript语法错误
- 16. PDO致命错误检查语法
- 17. 错误,同时检查语法
- 18. SQL语法错误手动检查
- 19. 语法错误 - 如果使用的eval()从电网调用JavaScript函数
- 20. 如何在使用eval时找到Javascript语法错误的位置?
- 21. MySQL查询语法错误:1064 - 您的SQL语法错误;
- 22. 简单的检查/验证JavaScript语法
- 23. eclipse中的JavaScript语法检查
- 24. Javascript,你能检查我的语法吗?
- 25. IF语句的查询语法错误
- 26. Clojure的EVAL错误
- 27. 在eval()中使用赋值(lambda)时的语法错误?
- 28. 语法错误:打印不工作的eval()
- 29. 错误检查输入,Javascript
- 30. javascript setInterval错误检查
我不知道为什么我没有尝试这个自己。非常感谢! – 2011-02-07 16:37:37
@耶稣 - 你想知道的事实是一件好事。无论如何,祝你好运。 – ChaosPandion 2011-02-07 18:00:19