前言
刚开始学JS的时候,老师就说过要多用console.log() 打印信息。不过也是对于我这种初学者来说console.log()已经够用了,随着学习的深入,log() 面对一个长长的数组时,就显得不是很直观。这个时候就可以用 console.table()来直观显示这一数组 。接下来和大家介绍一下console的几个比较常用的方法。
1. console.log()
其实console.log()还隐藏着很多让人意想不到的功能,比如说打印出带css样式的文字,通过%s和%o(注意是字母 o)占位符进行传值。
1.1 %s和%o占位符

var user = {name: 'tan'};
console.log('Hello %s %o', 'World', user);
1.2 打印带样式信息
console.log('%cMsg', 'css')

console.log('Hello %cWorld', 'color: #2b99ff; font-size: 24px;');
1.3 增强log()信息的阅读体验
假设有这么一个场景,你需要一次打印好几个变量信息,而你又不想写好几个console.log()进行一次次打印。这时候你可能会一次打印全部变量,场景如下:


那么问题来了,对象少的时候还是比较好辨别。那如果对象多了,就显得有点混乱了。为了提高它的可读性,可以给这些参数用一个{}包起来,就会有不一样的效果。


2. console.table()
这个API我也是最近才发现的,有点惊讶,居然还有这么好用的东西,话不多说自行体验。
假设有这么一个数组:
var arr = [
{id: 1, name: '小明', age: '18'},
{id: 2, name: '小红', age: '19'},
{id: 3, name: '小东', age: '18'},
{id: 4, name: '小莉', age: '18'},
{id: 5, name: '小伟', age: '20'}
]
- 用
console.log()时是这样的,效果不是那么一目了然:

- 用
console.table()是这样的,一目了然:

console.table()的第二参数是选择显示的字段
console.table(arr, ['id', 'name'])

console.table()也支持node.js,不过要更新到10版本以上。同时这个也有个限制,就是最多只能处理1000条数据。
3. console.dir()
console.log()和console.dir()的区别是看图吧:

4. console.warn()
更直观的看到一些警告的信息(个人理解)

5. console.assert()
这个是用来判断true和false的,而且只有为false的时候才行,具体用处我也不是很理解0.0,可能没有遇到这种场景。

参考文献:
-
掘金-前端小智-【译】灵活使用 console 让 js 调试更简单
-
掘金小册 - 《你不知道的 Chrome 调试技巧》