console.log的延迟计算
console.log的延迟计算
我们调试JavaScript时经常会用到console.log
打印,但是console.log
打印对象时不那么准确。看下面的例子:
1 | const user = { name: 'Ming' }; |
user.name
的初始值为Ming
,打印user
看到的name
值也是Ming
。紧接着修改user.name
值为Lee
,然后再暂开前面打印user
对象就看到name
值变成了Lee
。
这个展开看到的值是Chrome为了优化console.log
进行的延迟计算,我们看到对象展开后的值是在展开时实时计算的。如果留意在展开对象时会有一个提示Value below was evaluated just now.
。
为了避免上述问题在打印对象时可以将对象序列化:1
console.log(JSON.stringify(user, null, 2)); // 格式化
本站采用「署名 4.0 国际」进行许可。