console.log 对象时需要注意的坑
刀刀
7/15/2025
0 字
0 分钟
- 来源:三十的前端课;视频地址:console.log对象时,一定要注意的坑
坑点
在打印对象或数组时,控制台看到的是它的最终状态,而不是打印时的状态。
解决方案是在打印时,最好 JSON.stringify()
打印,或者打印里面具体的值。
例子
js
const obj = {};
setTimeout(() => {
console.log("执行setTimeout");
obj.a = 1;
obj.b = 2;
});
console.log(obj); // { a: 1, b: 2 }
原理
console.log
输出的是内存地址上的东西- 引用类型是按照内存地址改值的
对象数组赋值存储引用类型的步骤如下:
- 创建一个对象,存储到内存某个地址中
- 把这个地址给到
obj
变量存储 obj
赋值给obj2
,obj
存储的其实是 1001 这个地址,所以把内存地址赋值给了obj2
- 修改
obj2
,等同于修改了 1001 这个地址的对象 obj
存储到也是 1001 这个地址,和obj2
拿的其实是同一个对象