console.log打印对象的坑...

问题:console.log()打印一个对象|数组时,在控制台看到的是打印的最终状态,而不是打印时的状态(不是执行console.log()的那一刻)。
解决:要打印对象|数组时,最好JSON.stringify()打印,或者打印里面具体的值,而不是打印整个对象。

const obj = {}

setTimeout(() => {
  console.log('给obj添加属性值')
  obj.a = 123
  obj.b = 456
}, 1000)

// 控制台看到的说打印的最终状态,控制台的打印内容时内存地址,而不是对象本身
console.log('查看obj对象', obj)

// 方法1:打印里面具体的值
const obj = {}

setTimeout(() => {
  console.log('给obj添加属性值')
  obj.a = 123
  obj.b = 456
}, 1000)

console.log('查看obj对象的属性值', obj.a, obj.b) // undefined undefined 

// 方法2:使用JSON.stringify()打印
const obj = {}

setTimeout(() => {
  console.log('给obj添加属性值')
  obj.a = 123
  obj.b = 456
}, 1000)

console.log('查看obj对象', JSON.stringify(obj)) // {}

总结

console.log() 打印对象时,输出的是内存地址上的内容;
引用类型是按内存地址改值的。

对象数组等引用类型时如何赋值以及存储形式