你还只会 console.log 调试嘛?

点击上方蓝字关注前端真好玩,从此前端进阶不再难

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

分类 log

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

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

显示输出如下:

% 操作符

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

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

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

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

分组显示

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

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

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

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

计时

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

console.time()
console.timeEnd()

对象时空固定术

之前看到几次群里有同学问类似这样的问题:为什么我明明把 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

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

最后

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值