我想通过代码强制Chrome调试器在一行上中断,或者使用某种注释标记,例如console.break()。
这是可能的,你想这么做的原因有很多。例如,在页面加载开始时调试javascript无限循环,会阻止chrome开发人员工具集(或firebug)正确加载。
参见第2节
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
或者只是在所需的测试点向代码中添加一行包含调试器字样的代码。
正如其他人已经说过的,调试器;才是正确的选择。 我写了一个小脚本,你可以在浏览器的命令行中使用它来设置和删除函数调用之前的断点: http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
设置按钮点击监听器并调用调试器;
例子
$("#myBtn").click(function() {
debugger;
});
Demo
http://jsfiddle.net/hBCH5/
JavaScript中调试的资源
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/ http://berzniz.com/post/78260747646/5-javascript-debugging-tips-youll-start-using-today
调试器是EcmaScript保留的关键字,从ES5开始提供可选语义
因此,它不仅可以在Chrome中使用,还可以通过节点调试myscript.js在Firefox和node .js中使用。
标准说:
Syntax DebuggerStatement : debugger ; Semantics Evaluating the DebuggerStatement production may allow an implementation to cause a breakpoint when run under a debugger. If a debugger is not present or active this statement has no observable effect. The production DebuggerStatement : debugger ; is evaluated as follows: If an implementation defined debugging facility is available and enabled, then Perform an implementation defined debugging action. Let result be an implementation defined Completion value. Else Let result be (normal, empty, empty). Return result.
ES6没有变化。
断点:- 断点将停止执行,并让您检查JavaScript值。 检查值之后,可以继续执行代码(通常使用播放按钮)。 调试器: 调试器;停止JavaScript的执行,并调用调试函数。 调试器语句暂停执行,但它不会关闭任何文件或清除任何变量。
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
你也可以设置debug(functionName)来调试函数。
https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
调试JavaScript代码的方法有很多。以下两种方法被广泛用于通过代码调试JavaScript
使用console.log()在浏览器中打印出值 控制台。(这将帮助您理解某些点上的值 你的代码) 调试器的关键字。添加调试器;去你想去的地方 调试,然后打开浏览器的开发人员控制台并导航到 来源选项卡。
有关调试JavaScript代码的更多工具和方法,请参见W3School提供的这个链接。
我不推荐调试器;如果你只是想杀死和停止javascript代码,因为调试器;将只是暂时冻结你的javascript代码,而不是永久停止它。
如果你想在你的命令下正确地杀死和停止javascript代码,请使用以下命令:
抛出新的错误(“这个错误消息出现是因为我放置了它”);
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- jQuery日期/时间选择器
- 我如何预填充一个jQuery Datepicker文本框与今天的日期?
- 数组的indexOf函数和findIndex函数的区别
- jQuery添加必要的输入字段
- Access-Control-Allow-Origin不允许Origin < Origin >