在代码中设置一个JavaScript断点 – 在铬?
我想强制chromedebugging器通过代码断行,或者使用某种types的注释标记,如console.break()
。
有没有办法做到这一点?
你可以使用debugger;
在你的代码中。 如果开发人员控制台处于打开状态,执行将会中断 它也适用于萤火虫。
正如其他人已经说过的, debugger;
是要走的路。 我写了一个小脚本,可以在浏览器的命令行中使用,在函数调用之前设置和删除断点: http : //andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
设置一个button点击监听debugger;
并调用debugger;
例
$("#myBtn").click(function() { debugger; });
演示
有关在JavaScript中进行debugging的资源
您也可以使用debug(function)
,当function
被调用时中断。
命令行API参考:debugging
在“脚本”选项卡上,转到您的代码所在的位置。 在行号的左侧,点击。 这将设置一个断点。
截图:
然后,您将能够在正确的选项卡中跟踪您的断点(如屏幕截图所示)。
这是可能的,有很多原因,你可能想这样做。 例如,debugging一个接近页面加载开始的JavaScript无限循环,这会阻止Chrome开发者工具集(或者萤火虫)正确加载。
参见第2节
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
或者在需要的testing点添加一行包含单词debugging器的代码到您的代码中。
debugger
是EcmaScript的保留关键字,自ES5以来给出了可选的语义
因此,不仅可以在Chrome中使用,还可以通过node debug myscript.js
Firefox和Node.js。
标准说 :
句法
DebuggerStatement : debugger ;
语义
评估DebuggerStatement生产可能允许实现在debugging器下运行时导致断点。 如果debugging器不存在或不活跃,则该语句没有可观察到的效果。
生产DebuggerStatement:debugging器; 评估如下:
- 如果一个实现定义的debugging工具可用并且被启用,那么
- 执行一个实现定义的debugging操作。
- 让结果成为实现定义的完成值。
- 其他
- 让结果为(正常,空,空)。
- 返回结果。
断点: –
断点将停止执行,并让您检查JavaScript值。
检查值后,可以继续执行代码(通常使用播放button)。
debugging器: –
debugging器; 停止JavaScript的执行,并调用debuggingfunction。
debugging器语句暂停执行,但它不closures任何文件或清除任何variables。
Example:- function checkBuggyStuff() { debugger; // do buggy stuff to examine. };