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 相关文章推荐
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
javascript每日必学之条件分支
Feb 17 Javascript
javascript的document中的动态添加标签实现方法
Oct 24 Javascript
node+express制作爬虫教程
Nov 11 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
clipboard在vue中的使用的方法示例
Oct 19 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
js单线程的本质 Event Loop解析
Oct 29 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 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的五种设计模式
2012/09/05 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
javascript连续赋值问题
2015/07/08 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
利用Python查看目录中的文件示例详解
2017/08/28 Python
python字典操作实例详解
2017/11/16 Python
Python读写文件基础知识点
2019/06/10 Python
python如何实现单链表的反转
2020/02/10 Python
Python如何重新加载模块
2020/07/29 Python
用python绘制樱花树
2020/10/09 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
python 如何设置守护进程
2020/10/29 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
政法大学毕业生自荐信范文
2014/01/01 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
交通事故被告答辩状
2015/05/22 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
师德培训心得体会2016
2016/01/09 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python