在js调试中,大部分的前端人员都是采用console.log()方法来打印出调试的数据,但是很多人都不知道console这个对象有很多很实在的方法,本文就来介绍一下这些方法的使用。

一、console.log()

console.log()这个方法是前端人员最熟悉的了,几乎我们每天都会使用,除了简单的打印对象功能,那么以下两种使用方法你知道吗?
1、多参数记录

当我们要去比对两个对象时,想让这两个对象整齐的在两边,这时console.log()就能帮上我们的忙。
2、格式化输出
console.log(msg, values);这种跟C#的string.Format()有点像,console.log()能支持字符串、整数、浮点数、object对象以及css样式的格式化输出。占位符及其描述如下表。

占位符 描述
%s 字符串
%d/%i 整数
%f 浮点数
%o/%O object对象
%c css样式

接下来我们来做一下举例:
①、字符串格式化为在占位符的地方原样输出我们的值:

②、整数与浮点数一致我们这里就不过多举例了:

③、对于object对象的格式化输出就有比较大区别了,当为%o时输出和不使用格式化输出打印出来的结果一样,当为%O时,可以看到对象的各个属性,比如我们打印一个DOM节点,%o打印的是此节点及其子节点,%O打印的是是该dom节点各个对象属性。

④、css样式输出,样式会在%c后面都加上这个样式

二、console.dir()

这个方法在大部分时候都跟console.log()一致,但是还是略有不同。

在查询DOM结构时,更能体现出两者的不同。console.log(element)打印的dom结构,而console.dir(element)打印的则是整个dom对象。

三、console.table()

令人意外的是,很多人都不知道有这个方法,其作用是当我们想对一个复杂的对象进行输出时,使用console.log()往往是输出一些不能一目了然的数据,此时console.table()就能帮我们把这个对象整理成一个列表,以便于我们很清晰的看到数据。

四、console.warn()

这个方法跟console.log()几乎一致,唯一的区别就是浏览器会对其有不一样的对待,会输出一个警告。

五、console.assert()

assert函数是对输入的值进行断言,相信有写过单元测试的读者们都很熟悉了。当

六、console.count()

此方法是用来统计count被调用的次数。

七、console.trace()

调试JavaScript程序时,有时需要打印函数调用的栈信息,这可以通过使用console.trace()来实现,此方法一般用来显示当前执行的代码在堆栈中的调用路径,可清洗的看到被调用的过程。

八、console.time()与console.timeEnd()

console.time() 方法是作为计算器的起始方法。该方法一般用于测试程序执行的时长。
console.timeEnd() 方法为计算器的结束方法,并将执行时长显示在控制台。如果一个页面有多个地方需要使用到计算器,可以添加标签参数来设置。

九、console.group()与console.groupEnd()

console.group() 方法用于设置分组信息的起始位置,该位置之后的所有信息将写入分组。
console.groupEnd() 方法用于结束分组标签。
使用 console. groupCollapsed() 方法来设置折叠的分组信息。

十、console.clear()

console.clear() 方法用于清除控制台所有信息。
console.clear() 方法在执行成功后,会在控制台输出: "Console was cleared"。

总结

在js调试中,虽然console对象的有些方法我们也很少用到,但是我们不能单纯只会一个console.log(),了解并学会使用其他方法,对我们在调试过程中起到了很关键的作用,使我们的效率能更高。关于此对象的所有用法,本文参考了菜鸟教程的部分文章,想深入学习的读者可以继续移步学习。
笔者水平有限,本文若有不对之处,请留言指正,不胜感激!

Js调试中不得不知的Console的更多相关文章

  1. JS 调试中常见的报错的解决办法

    报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) ...

  2. js调试中打印语句

    document.write(); console.log(); window.alert();

  3. JavaScript调试中Console命令

    JS调试中,用console.log 感觉比 alert 好用,不用弹出窗口,还要关闭.除了console.log()其他命令没怎么用过,先在这里记一下,用到时在看看 一.显示信息的命令 consol ...

  4. 一探前端开发中的JS调试技巧

    前言 调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...

  5. 前端开发中的JS调试技巧

    前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...

  6. 【repost】一探前端开发中的JS调试技巧

    有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...

  7. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  8. 一探前端开发中的JS调试技巧(转)

    有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...

  9. [转]九个Console命令,让js调试更简单

    转自:九个Console命令,让js调试更简单 一.显示信息的命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html ...

随机推荐

  1. EF db first 获取表名称

    一直以来,使用DB FIRST的方式,想得到表名,最后一直不得其法.直到昨天晚上,反编译自己的程序集的时候,突然发现EF表结构和数据实体类的映射关系存在什么地方.然后就有了这篇文章. 咱们一步步来. ...

  2. Socket通信的Demo

    https://blog.csdn.net/shankezh/article/details/70763579

  3. LOJ#6387 「THUPC2018」绿绿与串串 / String (Manacher || hash+二分)

    题目描述 绿绿和 Yazid 是好朋友.他们在一起做串串游戏. 我们定义翻转的操作:把一个串以最后一个字符作对称轴进行翻转复制.形式化地描述就是,如果他翻转的串为 RRR,那么他会将前 ∣R∣−1个字 ...

  4. SQL注入之重新认识

    i春秋作家:anyedt 原文来自:https://bbs.ichunqiu.com/thread-41701-1-1.html 引言 作为长期占据 OWASP Top 10 首位的注入,认识它掌握它 ...

  5. 多核CPU配合负载均衡可以这样用,为老板省点钱

    负载均衡作为一个处理高并发,大流量的访问的业务场景,已经几乎是常识性的知识了. 而本文的意义在于需求:由于大流量请求,导致服务无法正常响应,在不增加购买机器成本的场景下,如何提高服务器的业务处理能力? ...

  6. MySQL备份---lvm snapshot

    正常安装(缺点要锁表) 1, 创建一个LV(逻辑卷) , 把MySQL的数据目录放到这个LV上 /var/lib/mysql 对这个LV做快照, 从快照备份数据 删除快照 非正常安装 1,创建LV 2 ...

  7. celery异步认知

    celery是异步任务的框架 是由python实现的异步框架. 在使用celery我们经常分为三个部分, 第一部分就是我们所说的客户端, 就是发起异步任务的一方, 第二部分 任务队列 broker 第 ...

  8. 递归打印目录层次(java版)

    import java.io.File; public class Test { /** * * @param fileDir 根目录 * @param num 递归层次 */ private sta ...

  9. 认识不一定熟悉的opencv

    对很多人来说,opencv就像在旅行路上遇到的某个人,很有可能,这个只是你生命中的匆匆过客.可是,对于一个立志要做熟悉图像处理的人来说,你不能绕过他. 他是什么? OpenCV是一个基于BSD许可(开 ...

  10. 关于Ubuntu拒绝root用户ssh远程登录

    #sudo vim /etc/ssh/sshd_config 找到并用#注释掉这行:PermitRootLogin prohibit-password 新建一行 添加:PermitRootLogin ...