735

我想强制 Chrome 调试器通过代码中断一行,或者使用某种注释标记,例如console.break().

4

12 回答 12

1230

您可以debugger;在代码中使用。如果开发者控制台打开,执行将中断。它也适用于萤火虫。

于 2012-04-06T23:49:37.850 回答
33

您也可以使用, 在被调用debug(function)时中断。function

命令行 API 参考:调试

于 2016-08-19T11:00:51.937 回答
27

设置按钮单击侦听器并调用debugger;

例子

$("#myBtn").click(function() {
 debugger;   
});

演示

http://jsfiddle.net/hBCH5/

JavaScript 调试资源

于 2014-05-04T17:33:09.403 回答
15

正如其他人已经说过的那样,debugger;这是要走的路。我写了一个小脚本,您可以在浏览器的命令行中使用它在函数调用之前设置和删除断点:http: //andrijac.github.io/blog/2014/01/31/javascript-breakpoint/

于 2014-02-02T04:55:36.543 回答
7

在“脚本”选项卡上,转到您的代码所在的位置。在行号的左侧,单击。这将设置一个断点。

截屏:

chrome中的断点截图

然后,您将能够在右侧选项卡中跟踪您的断点(如屏幕截图所示)。

于 2012-04-06T23:53:28.483 回答
7

debugger是 EcmaScript 的保留关键字,并且从 ES5 开始具有可选语义

因此,它不仅可以在 Chrome 中使用,还可以通过node debug myscript.js.

标准说:

句法

DebuggerStatement :
    debugger ;

语义

评估 DebuggerStatement 生产可能允许实现在调试器下运行时导致断点。如果调试器不存在或不活动,则此语句没有可观察到的效果。

生产 DebuggerStatement : debugger ; 评估如下:

  1. 如果实现定义的调试工具可用并启用,则
    1. 执行实现定义的调试操作。
    2. 让 result 是实现定义的 Completion 值。
  2. 别的
    1. 让结果为(正常,空,空)。
  3. 返回结果。

ES6 没有变化。

于 2016-05-31T15:26:20.443 回答
3

有很多方法可以调试 JavaScript 代码。以下两种方法被广泛用于通过代码调试 JavaScript

  1. console.log()用于打印浏览器控制台中的值。(这将帮助您了解代码某些点的值)

  2. 调试器关键字。添加debugger;到您要调试的位置,然后打开浏览器的开发人员控制台并导航到源选项卡。

有关调试 JavaScript 代码的更多工具和方法,请参阅 W3School 的此链接

于 2018-04-26T14:18:35.620 回答
2

这是可能的,并且您可能想要这样做的原因有很多。例如,在页面加载开始时调试 javascript 无限循环,这会阻止 chrome 开发人员工具集(或 firebug)正确加载。

见第 2 节

http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/

或者只是在所需的测试点将包含单词 debugger 的行添加到您的代码中。

于 2014-01-21T10:02:20.383 回答
2

断点:-

断点将停止执行,并让您检查 JavaScript 值。

检查值后,您可以恢复代码的执行(通常使用播放按钮)。

调试器:-

调试器;停止 JavaScript 的执行,并调用调试函数。

调试器语句暂停执行,但它不会关闭任何文件或清除任何变量。

Example:-
function checkBuggyStuff() {
  debugger; // do buggy stuff to examine.
};
于 2016-11-04T18:06:07.367 回答
2

您也可以设置debug(functionName)调试功能。

https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function

于 2018-01-19T10:37:56.770 回答
0

debugger;如果您只想杀死和停止 javascript 代码,我不建议您这样做,因为debugger;它只会暂时冻结您的 javascript 代码而不是永久停止它。

如果您想在命令中正确终止和停止 javascript 代码,请使用以下命令:

throw new Error("This error message appears because I placed it");

于 2020-03-30T21:56:59.690 回答
-1

这个要点Git 预提交挂钩,用于从您的 merb 项目中删除杂散的调试器语句

如果想debugger在提交时删除断点可能有用

于 2021-02-04T09:21:24.280 回答