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 相关文章推荐
JQuery切换显示的效果实例代码
Feb 27 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 Javascript
js判断iframe内的网页是否滚动到底部触发事件
Mar 18 Javascript
js数组与字符串的相互转换方法
Jul 09 Javascript
javascript中对变量类型的判断方法
Aug 09 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 Javascript
详解Vue 方法与事件处理器
Jun 20 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
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
Sublime里直接运行PHP配置方法
2014/11/28 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
Python中处理时间的几种方法小结
2015/04/09 Python
批处理与python代码混合编程的方法
2016/05/19 Python
python+Django+apache的配置方法详解
2016/06/01 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python获取url的返回信息方法
2018/12/17 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
python3跳出一个循环的实例操作
2020/08/18 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
八年级历史教学反思
2014/01/10 职场文书
运动会广播稿400字
2014/01/25 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
教师师德考核自我评价
2014/09/13 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
Java 写一个简单的图书管理系统
2022/04/26 Java/Android