Javascript调试之console对象——你不知道的一些小技巧


Posted in Javascript onJuly 10, 2017

前言

写过前端Javascript代码的同学肯定不会对console对象感到陌生,在调试的过程中我们经常会用console对象在控制台输出一些常量或者变量。

但是相信很多人也就只用过console.log()这一个方法,今天我们就一起来看看console对象还有哪些比较有用的方法。由于本篇文章是跟控制台有关,代码就直接在控制台展现而没有另外用新文件展示。

Javascript调试之console对象——你不知道的一些小技巧

不同级别日志

通过console对象的不同方法,可以在控制台上输出不同级别的日志信息,它们会采用不同的标志来展示,如下图所示。

Javascript调试之console对象——你不知道的一些小技巧

不同级别的日志

Javascript调试之console对象,它的一些小技巧你都知道吗?

包含占位符

在输出信息时可以通过%占位符来指定对应的值,而不用总是采用拼接字符串的方法。支持的占位符包括以下几种。

  • %s - 字符
  • %d - 整数
  • %f - 浮点数
  • %o - 对象

通过以下一个简单的例子可以看出其用法。

Javascript调试之console对象——你不知道的一些小技巧

包含占位符

Javascript调试之console对象,它的一些小技巧你都知道吗?

打印分组信息

通过group()方法可以以分组的形式展示出信息,类似于列表结构。

Javascript调试之console对象——你不知道的一些小技巧

打印分组信息

Javascript调试之console对象,它的一些小技巧你都知道吗?

表达式判断

在一些测试框架中,经常会用assert断言来判断一个表达式的值是否为真。同样在console对象中也有assert方法,在断言为真时并不会输出任何信息,而在断言为false时,直接抛出异常。

Javascript调试之console对象——你不知道的一些小技巧

表达式判断

上述代码中前两条语句判断结果都为true,所以没有输出任何信息,第三条语句判断结果为false,所以会直接抛出异常。

表格打印

console对象有个table方法,可以直接将对象类型的数据以表格展示。

Javascript调试之console对象——你不知道的一些小技巧

表格打印

函数调用栈信息

通过console.trace()方法可以展示出函数调用栈的信息,来查看函数调用过程,一般会选择将这个方法放在最后执行的函数的方法体中。

Javascript调试之console对象——你不知道的一些小技巧

函数调用栈信息

由于栈是先进后出机制,所以先执行的方法会在后面输出,因此上述代码结果会按照sum, f2, f1的顺序输出。

计时

一般统计一段代码执行耗时,方法会是通过Date对象获取毫秒数,然后将两个毫秒数进行相减。

Javascript调试之console对象——你不知道的一些小技巧

一般计时方法

在上述代码中通过endTime和startTime两个变量的差值来计算出中间执行代码的耗时,我们可以看出往一个数组中添加100000个字符串耗时为15毫秒。

同样可以通过console对象的time()和timeEnd()方法来统计代码段的执行耗时。time()和timeEnd()可以接收一个字符串作为标识,而且两个方法接收的字符串必须一样,如果没有传入字符串则默认为‘default'字符串。

Javascript调试之console对象——你不知道的一些小技巧

 console对象计时方法

上述代码执行结果为16毫秒,与之前那个方法产生的结果大致一样。

性能分析

通过console.profile()和console.profileEnd()方法,可以展示出代码中各个函数执行所消耗的时间,可以用来评估代码性能。

我们使用以下测试代码来进行说明。

Javascript调试之console对象——你不知道的一些小技巧

打开chrome浏览器的控制台会有一个Javascript Profile菜单栏,如果默认情况下没有的话,可以按照以下方法打开。

Javascript调试之console对象——你不知道的一些小技巧

 Javascript Profile

打开这个菜单选项后,我们可以看出每个方法执行消耗的时间。

Javascript调试之console对象——你不知道的一些小技巧

时间消耗

以上所述是小编给大家介绍的Javascript调试之console对象——你不知道的一些小技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
驱动事件的addEvent.js代码
Mar 27 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
Mar 11 Javascript
js获取指定字符前/后的字符串简单实例
Oct 27 Javascript
vue的事件绑定与方法详解
Aug 16 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
vue实现表格数据的增删改查
Jul 10 #Javascript
激动人心的 Angular HttpClient的源码解析
Jul 10 #Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 #Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 #jQuery
Underscore之Array_动力节点Java学院整理
Jul 10 #Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 #Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 #Javascript
You might like
PHP clearstatcache()函数详解
2010/03/02 PHP
php动态变量定义及使用
2015/06/10 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
JS模拟多线程
2007/02/07 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
极简的HTML5模版
2015/07/09 HTML / CSS
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
南京某公司笔试题
2013/01/27 面试题
往来会计岗位职责
2013/12/19 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
经营目标管理责任书
2014/07/25 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
亮剑观后感500字
2015/06/05 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP