在浏览器中调试JavaScript代码的最佳实践

来自菜鸟教程
跳转至:导航、​搜索

所有开发人员都会犯错误,因此会出现错误。 我们经常面临错误,程序员必须具备良好的调试技能。 我将向您展示一些可以提高调试效率的原则。

一些好的调试原则

  • 您必须首先了解您的代码应该做什么,确定问题所在并开始调试以验证您的假设。
  • 找出故障的根源后,请专注于解决问题的原因。
  • 当您测试您的假设时,您将设置断点和控制台日志。 所以不要忘记在完成调试后丢弃那些。
  • 显然不要在生产中调试!

登录到控制台

console.log 是检查应用程序执行过程中各个点的变量值的最常用方法。 但是还有更多方法可以更方便地显示这些值。

有时我们想要检查一个复杂的对象或数组。 我们仍然可以使用 console.log(array);console.table(array) 会将对象显示为一个漂亮的表格:

console.table([
  {animal: 'cayman', color: 'green' },
  {animal: 'crocodilian', color: 'yellow-green' }
]);

将输出:

我们也可以使用 console.trace() 来记录到达该点的确切路径。 它将输出堆栈跟踪。

function meat(){
  function eggs(){
    console.trace();
  }
  eggs();
} 

我们将在控制台中看到如下内容:

eggs
meat
<anonymous>

您可以阅读 控制台 API 文档 了解更多方法。

断点

断点是调试 JavaScript 代码的一种更快、更轻松的方法。

在代码中设置断点的一种常见方法是使用 debugger 语句:

if (someCondition) {
  debugger;
}

当代码遇到 debugger 语句执行停止时,它将启动浏览器的开发人员工具并跳转到找到 debugger 语句的行。

它将允许您暂停执行,然后逐行单步执行您的代码。 我们可以观察存储在变量中的代码和值,看看什么时候开始出错。 我们可以检查代码的当前状态,并准确了解我们在代码中的位置。

我们可以看到 调用堆栈 显示了到目前为止调用的所有函数。 Scope 选项卡显示了我们当前可用的所有变量范围,并查看每个范围中的所有变量及其值。

我们可以通过单击行号来添加或删除断点。 当代码暂停时,我们可以使用箭头在代码中移动。 通过单击蓝色箭头,您将移动到下一个断点,如果没有下一个断点,则移动到代码的末尾。

您可以按向下箭头跳到函数或向右箭头一步抛出代码一行。

调试器为我们提供了我们需要修复的确切代码行。

概括

我希望这是一个有助于调试 JavaScript 代码的小介绍。 永远记住,最好的调试工具是你的头脑,如果你不明白你要解决的问题是什么,所有这些技术都将无济于事。