这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战
调试JavaScript代码具有两个重要的方面:
● 记录日志,将代码正在运行的内容打印出来
● 断点,允许我们暂停代码的执行,查看应用程序的当前状态
日志
即我们常用的 console.log(),通过浏览器直接把日志消息在JavaScript控制台输出,同时显示日志信息和记录日志的代码行数。
可以使用日志来查看应用程序运行的各个方面,例如重要功能的执行,一个重要的对象属性的变化,或特定事件的发生。在代码运行时,日志用于查看状态信息是非常优秀的;有时我们希望暂停代码的执行,查看某一时刻的周围状态。这就需要断点了。
断点
断点是指在指定的某一行停止脚本执行,暂停浏览器运行,这时我们能够查看各种事件的状态。
断点工具目前很多浏览器已经集成在浏览器中,当按 F12 调出的开发者工具就可以执行断点调试了。具体调试方法如下:
(1)找到开发者工具中的 source(中文翻译为 来源,火狐为调试器)按钮,点击打开显示当前页面源码
(2)通过单击行号,创建一个断点
(3)当页面加载时,会在断点处中断执行,并高亮显示即将要被执行的下一行代码。
(4)在右侧面板中可以查看应用中当前的状态。
注意:不同浏览器显示内容稍有不同,但大致相同。
断点中也分几种不同的情况:
同样不同浏览器也有差异,这里只介绍其中一种,目的是让大家明白调试的时候有这些思路。
(1)单行执行
单行执行命令逐行执行代码。如果执行中的代码行包含一个函数调用,调试器会执行该函数(函数将执行,但调试器不会进入它的内部代码)。
(2)条件断点
标准断点导致每次执行到某一特定的断点时,调试器都会停止应用程序的执行。
与传统的断点不同,标准断点每次遇到断点都会停止执行,而条件断点只有当满足条件时才会停止执行。假设有一个 for 循环,循环输出1-10之间的数字,我的需求是在当循环到5时,我们想要查看应用程序的状态,需要打断点,这时就用到了条件断点。我们可以在右侧面板中单机添加,如图:
添加条件断点:
增加判断条件:
打断点之后的输出:
通过添加条件断点,条件是表达式i === 5,只有当满足条件时调试器才会停止执行。通过这种方式,我们可以立刻进入我们感兴趣的部分,忽略不感兴趣的断点。
注意条件断点的颜色与普通断点的颜色不同,通常是黄色
测试框架的基本原理
断言
断言这个词,听起来挺高大上的,很多人可能不理解。但是用我们常用的编程术语解释,你就会有恍然大悟的感觉。
百度百科对断言的解释:
断言是编程术语,表示为一些布尔表达。
断言方法通常需要一个值——预设的表达式的值以及该断言目的的描述。如果该值为true,则断言通过;否则,被认为失败。
断言是单元测试框架的核心。
一个简单的 assert 函数如下:
console.assert()
console.assert 是内置的测试框架,是目前使用比较广泛比较受欢迎的方法。值得注意的是,只有断言失败才会在控制台显示错误信息。