有没有一种简单的方法可以在javascript代码中找到解析错误?
上周我调试了一个javascript问题,其中第一个被调用的javascript函数给出了“对象预期”错误。后来我确定这是因为浏览器无法解析我的javascript代码。我最终解决了这个问题,但这是一个痛苦的过程,包括逐行扫描我的代码,试图找出我的错误。
必须有一种更简单的方法。
答案 0 :(得分:3)
您使用的浏览器是什么? IE8具有很强的内置功能来调试javascript,对于Firefox,Firebug很棒。
答案 1 :(得分:3)
使用Jslint之类的工具或其他浏览器。
直到最近,IE还是唯一没有内置开发帮助的浏览器。其他浏览器将a)在遇到的第一个错误时不会停止,b)告诉你代码中的问题是什么以及在哪里。
我最喜欢的“快速广告”测试IE语法问题的方法是在Opera中加载页面。它解析像IE这样的代码,但会给你有意义的错误消息。
我将用一个例子澄清:
var foo = {
prop1 : 'value',
prop2 : 'value',
prop2 : 'value', // <-- the problem
};
如果我没记错的话:在IE6和IE7中,代码会中断,因为IE要求留下最后一个逗号。解析器抛出一个拟合,浏览器就会停止。它可能会警告某些错误,但行号(甚至文件名)将不可靠。但是,Firefox和Safari只是忽略逗号。 Opera运行代码,但会在控制台上打印错误,指示行号(及更多)。
编写JavaScript的最简单方法是使用Firefox + Firebug。用IE测试并让Opera告诉你它什么时候会破坏。
答案 2 :(得分:1)
检查传入函数的值是否正确,如果不正确,则throwing your own errors将帮助您更快地追踪问题。
Safari 4(在Mac OS X和Windows上运行)附带了一些非常有用的development tools(包括调试器)。如果您更喜欢使用Firefox,Firebug提供了类似的功能。
JSLint可以帮助您追踪简单的错误。
史蒂夫