我总是修复错误,但希望有更快的方法。及时了解错误会让我的工作更加快速...
是否有比Firebug更好的工具?是否需要为Firebug设置以始终报告错误?我应该使用不同的浏览器进行调试吗?
你应该尝试使用Chrome的开发者工具,这是我一直在使用的工具。它包括DOM检查器、本地数据库资源跟踪、cookie等网络活动、js调试器、时间轴、性能分析和审计功能。我认为这个工具非常好用。
我在使用Firebug时取得了巨大的成功,但也遇到了一些成长烦恼。
JavaScript是一种允许出现一些隐式错误的语言。jQuery也可能使调试变得困难。
有时我会让我的JavaScript更加冗长,直到它能够正常工作。逐行设置调试点并运行到下一个调试点,调试jQuery是无用的。同时,利用console.log()检查JS中的值非常有帮助。
简洁 - 难以调试:
function doSomething(cost, sale, myArray, span) {
var id = $(span).attr("id");
var isProfit = sale > cost;
return isProfit ? myArray[id] : isNew;'
}
扩展 - 更易于调试
function doSomething(cost, sale, myArray, span) {
console.log("cost: " + cost);
console.log("sale: " + sale);
console.log("span: " + span);
debugger;
var id = $(span).attr("id");
debugger;
var isProfit = sale > cost;
debugger;
var arrayVal = myArray[id];
return isProfit ? arrayVal : isNew;'
}
在我看来,Firebug仍然是迄今为止用于调试JavaScript的最好工具(尽管我必须承认Webkit的Web检查器正在赶上它)。
如果您因刷新或其他操作而烦恼控制台选项卡为空白,请在控制台选项卡中单击“持续”。
这将不会删除您抛出到控制台的任何日志。
另外,我不确定您所说的“它并不总是报告错误”的意思。您记录到控制台的所有错误都将显示出来。但选择将这些日志语句放入代码中则由您决定。
您还可以打开ES5中提供的“严格模式”,它将通过警告和静默错误进一步提示您。
编辑:
此外,我强烈建议您使用JSLint运行代码。这也将帮助解决一些问题。
JavaScript并不是最容易调试的语言,这一点毋庸置疑。但我认为Firebug是其中一个更好的调试工具。听起来你遇到了一些奇怪的错误。但当你在调试时,你可以使用“跳出”和“跳过”按钮来跳过调试jQuery函数,如果你想的话。这应该能帮助你更快地找到问题。