来自公众号:前端真好玩

console 其实提供了很多调试方法,有些方法还是挺好用的,今天就来介绍那些笔者认为不错的方法。

分类 log

如果你希望对 log 进行分类或者只是为了显示的醒目点,就可以使用以下方法。

// log 和 info 在 Chrome 下显示效果相同
console.log(1)
console.info(1)
console.error(1)
console.warn(1)

显示输出如下:

8b6f002e21f58d2b6cb326f7386eda50.png

% 操作符

% 操作符笔者在写别的语言时候经常用,但是 JS 可以直接使用模板字符串来解决,但是可能很多人不知道这种用法,在这里就提一嘴。

console.log('Hello %f', 1)
console.log('Hello %s', '1')

% 后面跟的英文代表你传入变量的类型,比如说 f 代表 float(浮点数);s 代表 string(字符串),其他还有些别的类型有兴趣的读者可以自己百度下。

另外需要注意一点的是如果传入的类型不符合你声明的,这时 JS 是不会帮你进行类型转换的,比如:

5064aee560f715dd306ad75505c47799.png

分组显示

大家应该经常有需要 log 多个的情况,这种时候你可能会选择使用这样的代码:

console.log('-----分组 1-----')
console.log('内容')
console.log('----------')

其实有更简便的方式来帮助我们分组 log

console.group('分组')
console.log('内容')
console.groupEnd()
aac280fa4c39f04ac93f96db263b9d3d.png

计时

有时候你可能需要给一段代码计时,查看它需要执行多久,是否存在性能问题。通常的办法就是 date 相减,然后把这个值 log 出来,其实 console 同样也提供了此类方法。

console.time()
console.timeEnd()
84e9d23370c6dfde2ea0db26860f68f2.png

对象时空固定术

之前看到几次群里有同学问类似这样的问题:为什么我明明把 XX 改了,但是输出的时候它不是我想的那样(确保代码都正确)。

let a = { b: { c: 1 } }
a.b.c = 2
console.log(a)
a.b.c = 3

当你打开 log 的时候你会发现 c 的值为 3。其实这个显示没太大问题,因为这种显示方式永远显示的是最新的对象数据。如果你就想看到 c 改动为 2 时的对象,可以选择以下方式(对象时空固定术):

let a = { b: { c: 1 } }
a.b.c = 2
console.table(a)
a.b.c = 3

此时你会发现输出符合了你的预期

d773f2e83c35231c7f6c5a726797abcb.png

最后

大家可以来聊聊平时你在使用 console 时候的骚操作或者调试的好办法。


●编号1239,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

fecf812ac89aff2c52b1fe06a6122b70.png

Web开发

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐