Javascript 使用断点进行调试与使用console.log进行调试有何不同?
我可能错了,但我相信断点的要旨是暂停应用程序的状态,检查它以前/当前的状态,并循环遍历每个“断点”,以识别漏洞、bug和异常情况 我从来没有被教过如何使用它,我相信我陷入了一种更原始、更普通的调试方法中。Console.log。Console.log无处不在 对我来说,“断点”相当于在应该出现“断点”的位置放置一个console.log,以了解特定对象/类/等的状态 然而,有些事情告诉我,这远远不是理想的,而且我缺乏在调试中似乎非常有价值的技能。我认识的每一位有才华的开发人员、教授和管理人员似乎都非常依赖断点,但通过谷歌搜索,我找不到任何可靠的解释,说明如何使用断点,使其优于简单的控制台日志 这个问题希望得到关于如何将“控制台记录器”思维与更高级的调试形式(断点)区分开来的答案Javascript 使用断点进行调试与使用console.log进行调试有何不同?,javascript,ajax,debugging,testing,breakpoints,Javascript,Ajax,Debugging,Testing,Breakpoints,我可能错了,但我相信断点的要旨是暂停应用程序的状态,检查它以前/当前的状态,并循环遍历每个“断点”,以识别漏洞、bug和异常情况 我从来没有被教过如何使用它,我相信我陷入了一种更原始、更普通的调试方法中。Console.log。Console.log无处不在 对我来说,“断点”相当于在应该出现“断点”的位置放置一个console.log,以了解特定对象/类/等的状态 然而,有些事情告诉我,这远远不是理想的,而且我缺乏在调试中似乎非常有价值的技能。我认识的每一位有才华的开发人员、教授和管理人员似乎
另外,我标记了javascript和ajax,因为这是我所使用的,我的问题主要针对这两类,但是我相信这适用于所有语言,以及优化调试的一般文化。a)您可以设置断点,而无需更改代码(可能还需要重新编译)b)您可以中断当前执行并检查程序状态的任意部分c)您可以单步执行单个语句,而不必从日志的有限(或压倒性)输出重构控制流是的,因此我从纯上下文的角度“理解”了这一点,但实际上,在没有控制台日志的情况下,如何实际收集所有这些数据?意思除非我有一个完整的状态处理程序/扩展来描述它(例如redux视图),否则应用程序的状态不会告诉我太多,但除此之外,很难辨别当前状态,以及我在寻找什么?再说一遍,我并不是说你错了,我是说我对如何使用它缺乏了解,我认为这限制了我的调试能力。调试器将向你展示简单的数据结构。你不需要任何东西来印刷或“描绘”国家。您可以在任何执行点检查任何变量的值。在搜索bug时,您只需查看那些您怀疑是错误的bug,就像您当前将它们记录下来一样,但要快得多,也要简单得多。