console.log 打印结果可能会误导

93 阅读1分钟

微信图片_20240617102505.png

我们先来看上面的截图,可以明显看到在浏览器中打印的数据展开前后存在区别(可以注意到右边其实已经有个警示图标)。

const data = {
  a: 1,
  b: [1, 2, 3],
};
console.log(data.b); 

data.b.splice(0, 1);

根据代码,可以得出结论,未展开前的数据是代码执行时的打印结果,而展开后的则是最终的打印结果。正如警示内容提示所述: 此值是在第一次展开评估得出的,之后可能已经发生更改。

总结:当我们的打印数据存在后续被二次修改的情况,为了造成在浏览器控制台展开后看到的数据前后不一的假象,我们最好选择用debugger这样就能更直观看到打印数据实时数据。