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() 打印对象时,输出的是内存地址上的内容;
引用类型是按内存地址改值的。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值