JavaScript/调试
- Firebug 是 Firefox 的一个强大扩展,它具有许多开发和调试工具,包括 JavaScript 调试器和分析器。
- Venkman JavaScript 调试器 (适用于基于 Mozilla 的浏览器,如 Netscape 7.x、Firefox/Phoenix/Firebird 和 Mozilla Suite 1.x)
- Venkman 简介
- 在 Venkman 中使用断点
- Microsoft Script Debugger (适用于 Internet Explorer)脚本调试器来自 Windows 98 和 NT 时代。它已被开发人员工具栏取代。
- Internet Explorer 开发人员工具栏
- 微软 Visual Web Developer Express 是微软的 Visual Studio IDE 的免费版本。它附带一个 JS 调试器。有关其功能的快速总结,请参阅 [1]
- Internet Explorer 8 默认情况下有一个类似 Firebug 的 Web 开发工具(无需附加组件),可以通过按 F12 访问。Web 开发工具还提供在 IE8 和 IE7 渲染引擎之间切换的功能。
Safari 包含一套强大的工具,可以轻松调试、调整和优化网站,以实现最佳性能和兼容性。要访问它们,请在 Safari 首选项中启用“开发”菜单。这些包括 Web 检查器、错误控制台、禁用功能和其他开发者功能。Web 检查器让您快速轻松地访问浏览器中包含的最丰富的开发工具集。从查看页面的结构到调试 JavaScript 到优化性能,Web 检查器以简洁的窗口呈现其工具,旨在使开发 Web 应用程序更高效。要激活它,请从“开发”菜单中选择“显示 Web 检查器”。“脚本”窗格中包含 Safari 中功能强大的 JavaScript 调试器。要使用它,请在 Web 检查器中选择“脚本”窗格,然后单击“启用调试”。调试器会循环浏览页面的 JavaScript,并在遇到异常或错误语法时停止。 “脚本”窗格还允许您暂停 JavaScript、设置断点和评估局部变量。[1]
- JTF 是一个协作网站,它允许您创建测试用例,这些用例将在所有浏览器中进行测试。它是进行 TDD 和确保您的代码在所有浏览器中都能正常工作的最佳方式。
有些人更喜欢将调试消息发送到“调试控制台”,而不是使用 alert() 函数 [2][3][4]。以下是流行浏览器的简要列表,以及如何访问它们各自的控制台/调试工具。
- FirefoxCtrl+Shift+K打开错误控制台。
- Opera (9.5+)工具 >> 高级 >> 开发者工具打开 Dragonfly。
- ChromeCtrl+Shift+J打开 chrome 的“开发者工具”窗口,并聚焦在“控制台”选项卡上。
- Internet ExplorerF12打开一个类似 Firebug 的 Web 开发工具,它具有各种功能,包括在 IE8 和 IE7 渲染引擎之间切换的功能。
- SafariCmd+Alt+C打开 Safari 的 WebKit 检查器。
- 仔细阅读您的代码,查找拼写错误。
- 确保每个 "(" 都被 ")" 闭合,每个 "{" 都被 "}" 闭合。
- 数组和对象声明中的尾随逗号将在 Microsoft Internet Explorer 中抛出错误,但在基于 Gecko 的浏览器(如 Firefox)中不会。
// Object
var obj = {
'foo' : 'bar',
'color' : 'red', //trailing comma
};
// Array
var arr = [
'foo',
'bar', //trailing comma
];
- 请记住 JavaScript 区分大小写。查找与大小写相关的错误。
- 不要使用 保留字 作为变量名、函数名或循环标签。
- 用 "\" 引用元字符串中的引号,否则 JavaScript 解释器会认为正在开始一个新字符串,例如
alert('He's eating food');应该改为- alert('He\'s eating food');或者
- alert("He's eating food");
- 使用 parseInt 函数将字符串转换为数字时,请记住“08”和“09”(例如在日期时间中)表示八进制数,因为它们有前导零。使用基数为 10 的 parseInt 可以防止错误转换。var n = parseInt('09',10);
- 请记住,JavaScript 是 平台 无关的,但不是 浏览器 无关的。由于没有得到适当执行的标准,某些功能、属性甚至对象可能在某个浏览器中可用,而在另一个浏览器中则不可用,例如,Mozilla/Gecko 数组具有 indexOf() 函数; Microsoft Internet Explorer 没有。
JavaScript 中的调试与大多数其他编程语言中的调试没有太大区别。请参阅 计算机编程原理/维护/调试 中的文章。
在运行时检查变量的最基本方法是简单的 alert() 调用。但是,一些开发环境允许您逐步执行代码,并在执行过程中检查变量。这些类型的环境可能允许您在程序暂停时更改变量。
有时浏览器有错误,而不是您的脚本。这意味着您必须找到解决方法。
JavaScript 的一些高级功能在某些浏览器中无法使用。
我们经常会做出这样的反应: 检测用户使用的浏览器,然后如果用户的浏览器是支持它的浏览器之一,就以一种酷炫的方式执行操作。否则跳过它。
与使用“浏览器检测”相比,更好的方法是编写“对象检测”JavaScript 来检测用户浏览器是否支持我们要使用的特定对象(方法、数组或属性)。[5] [6]
要找出方法、属性或其他对象是否存在,并在存在时运行代码,我们可以编写如下代码
var el = null;
if (document.getElementById) {
// modern technique
el = document.getElementById(id);
} else if (document.all) {
// older Internet Explorer technique
el = document.all[id];
} else if (document.layers) {
// older Netscape Web browser technique
el = document.layers[id];
}
- "JavaScript 调试",作者:Ben Bucksch
- ↑ "Safari - 最佳的网站浏览方式" (HTML). Apple. 检索于 2015-03-09.