断点的不成文惯例

时间:2014-10-29 08:56:52

标签: debugging google-chrome-devtools breakpoints

我已经阅读了关于Chrome和Firefox的开发工具中断点的文档,而没有在下面的问题上变得更明智。猜猜一些细节只是被视为理解。

  1. 为了清楚起见,当我在一行上设置一个断点时,执行是否在之前停止 之后

  2. 如果之前的,如果行,

    LI>
  3. 为什么我经常无法在特定行上设置断点,这有多么复杂的原因。例如,在if语句或空行。有时我的断点甚至会被重新移动。 Buggyness?

  4. 我似乎无法推断出断点放在仅包含括号的行() } ])时会发生什么的逻辑。

1 个答案:

答案 0 :(得分:2)

  1. 断点在线路运行之前停止执行。

  2. 要在一行之后停止执行,请在结束括号上的下一行设置断点,或者如果它是最后一行。

  3. 在此示例中的第3行设置断点:

    1. if (true) {
    2.     console.log('hello');
    3. }
    
    1. 您可以在if语句中设置断点。在上面的if (true)行设置断点应该按预期工作。是的,当Chrome决定自动将它们移动到某些封闭括号时,添加断点有时会出错。在这些情况下,强制刷新可能会有所帮助,但添加debugger;代替断点是一种更可靠的解决方法。

    2. 孤立的括号会被视为上一行/下一行的一部分。

    3. 在此示例中,在第1行设置断点可让您检查第1-5行。任何第2-5行的断点都会自动移动到第6行。在()[]括号上设置断点没有太大价值。花括号{}是最重要的。

      1. if (a &&
      2.     (
      3.         b || c
      4.     )
      5. ) {
      6.     console.log('hello');
      7. }