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 相关文章推荐
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
最新28个很棒的jQuery 教程
May 28 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
JS实现星星评分功能实例代码(两种方法)
Jun 09 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
jQuery实现jQuery-form.js实现异步上传文件
Apr 28 jQuery
详解webpack自动生成html页面
Jun 29 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
17道题让你彻底理解JS中的类型转换
Aug 08 Javascript
vue项目中使用多选框的实例代码
Jul 22 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 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 HTML代码串 截取实现代码
2009/06/29 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
js常见表单应用技巧
2008/01/09 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
python3中zip()函数使用详解
2018/06/29 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
美国最大网上鞋店:Zappos
2016/07/25 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
销售代理协议书
2014/09/30 职场文书
财务人员个人工作总结
2015/02/27 职场文书
初中班主任心得体会
2016/01/07 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python