console log打印obj非实时性数据问题
最近在控制台打印对象时发现一个问题:修改前输出和修改后输出打印的结果是一样的,瞬间把我搞蒙了。
let obj = { isActive: false }
console.log(obj) // { isActive: true }
// ... 修改obj操作
obj.isActive = true
console.log(obj) // { isActive: true }
1
2
3
4
5
2
3
4
5
就几行代码不可能有bug,那肯定就是这个方法设计如此。于是查找官方文档,果然如此。可以看到如果console.log的参数是对象是打印的不一定是该对象当时的值,如果要保证对象数据实时性可以使用console.log(JSON.parse(JSON.stringify(obj)))

上次更新: 2025/09/05, 8:09:00