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 面向对象全新理练之数据的封装
Dec 03 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
JavaScript实现多栏目切换效果
Dec 12 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
angular中如何绑定iframe中src的方法
Feb 01 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
vue移动端模态框(可传参)的实现
Nov 20 Javascript
ant design vue中表格指定格式渲染方式
Oct 28 Javascript
JS canvas实现画板和签字板功能
Feb 23 Javascript
原型和原型链 prototype和proto的区别详情
Nov 02 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编程与应用
2006/10/09 PHP
php笔记之:AOP的应用
2013/04/24 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python os模块学习笔记
2015/06/21 Python
深入理解python中的select模块
2017/04/23 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
如何用python批量调整视频声音
2020/12/22 Python
早餐连锁店计划书
2014/01/08 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
电大本科自我鉴定
2014/02/05 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
冬季安全检查方案
2014/05/23 职场文书
服务标语大全
2014/06/18 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
公司会议开幕词
2015/01/29 职场文书
装修公司管理制度
2015/08/05 职场文书
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript