JS调试工具,你会用吗?

326 阅读3分钟

这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

调试JavaScript代码具有两个重要的方面:

● 记录日志,将代码正在运行的内容打印出来

● 断点,允许我们暂停代码的执行,查看应用程序的当前状态

日志

即我们常用的 console.log(),通过浏览器直接把日志消息在JavaScript控制台输出,同时显示日志信息和记录日志的代码行数。

图片.png

可以使用日志来查看应用程序运行的各个方面,例如重要功能的执行,一个重要的对象属性的变化,或特定事件的发生。在代码运行时,日志用于查看状态信息是非常优秀的;有时我们希望暂停代码的执行,查看某一时刻的周围状态。这就需要断点了。

断点

断点是指在指定的某一行停止脚本执行,暂停浏览器运行,这时我们能够查看各种事件的状态。

断点工具目前很多浏览器已经集成在浏览器中,当按 F12 调出的开发者工具就可以执行断点调试了。具体调试方法如下:

(1)找到开发者工具中的 source(中文翻译为 来源,火狐为调试器)按钮,点击打开显示当前页面源码

(2)通过单击行号,创建一个断点

(3)当页面加载时,会在断点处中断执行,并高亮显示即将要被执行的下一行代码。

(4)在右侧面板中可以查看应用中当前的状态。

图片.png

注意:不同浏览器显示内容稍有不同,但大致相同。

断点中也分几种不同的情况:

同样不同浏览器也有差异,这里只介绍其中一种,目的是让大家明白调试的时候有这些思路。

(1)单行执行

单行执行命令逐行执行代码。如果执行中的代码行包含一个函数调用,调试器会执行该函数(函数将执行,但调试器不会进入它的内部代码)。

(2)条件断点

标准断点导致每次执行到某一特定的断点时,调试器都会停止应用程序的执行。

与传统的断点不同,标准断点每次遇到断点都会停止执行,而条件断点只有当满足条件时才会停止执行。假设有一个 for 循环,循环输出1-10之间的数字,我的需求是在当循环到5时,我们想要查看应用程序的状态,需要打断点,这时就用到了条件断点。我们可以在右侧面板中单机添加,如图:

添加条件断点:

图片.png

增加判断条件:

图片.png

打断点之后的输出:

图片.png

通过添加条件断点,条件是表达式i === 5,只有当满足条件时调试器才会停止执行。通过这种方式,我们可以立刻进入我们感兴趣的部分,忽略不感兴趣的断点。

注意条件断点的颜色与普通断点的颜色不同,通常是黄色

测试框架的基本原理

断言

断言这个词,听起来挺高大上的,很多人可能不理解。但是用我们常用的编程术语解释,你就会有恍然大悟的感觉。

百度百科对断言的解释:

断言是编程术语,表示为一些布尔表达。

断言方法通常需要一个值——预设的表达式的值以及该断言目的的描述。如果该值为true,则断言通过;否则,被认为失败。

断言是单元测试框架的核心。

一个简单的 assert 函数如下:

图片.png

console.assert()

console.assert 是内置的测试框架,是目前使用比较广泛比较受欢迎的方法。值得注意的是,只有断言失败才会在控制台显示错误信息。

图片.png