跳转到内容

JavaScript/调试

来自维基教科书,开放的书籍,为开放的世界



JavaScript 调试器

[编辑 | 编辑源代码]
  • Firebug 是 Firefox 的一个强大扩展,它具有许多开发和调试工具,包括 JavaScript 调试器和分析器。

Venkman JavaScript 调试器

[编辑 | 编辑源代码]

Internet Explorer 调试

[编辑 | 编辑源代码]

Safari 调试

[编辑 | 编辑源代码]

Safari 包含一套强大的工具,可以轻松调试、调整和优化网站,以实现最佳性能和兼容性。要访问它们,请在 Safari 首选项中启用“开发”菜单。这些包括 Web 检查器、错误控制台、禁用功能和其他开发者功能。Web 检查器让您快速轻松地访问浏览器中包含的最丰富的开发工具集。从查看页面的结构到调试 JavaScript 到优化性能,Web 检查器以简洁的窗口呈现其工具,旨在使开发 Web 应用程序更高效。要激活它,请从“开发”菜单中选择“显示 Web 检查器”。“脚本”窗格中包含 Safari 中功能强大的 JavaScript 调试器。要使用它,请在 Web 检查器中选择“脚本”窗格,然后单击“启用调试”。调试器会循环浏览页面的 JavaScript,并在遇到异常或错误语法时停止。 “脚本”窗格还允许您暂停 JavaScript、设置断点和评估局部变量。[1]

JTF: JavaScript 单元测试农场

[编辑 | 编辑源代码]
  • 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];
}

进一步阅读

[编辑 | 编辑源代码]

参考文献

[编辑 | 编辑源代码]
  1. "Safari - 最佳的网站浏览方式" (HTML). Apple. 检索于 2015-03-09.
华夏公益教科书