我们先来看上面的截图,可以明显看到在浏览器中打印的数据展开前后存在区别(可以注意到右边其实已经有个警示图标)。
const data = {
a: 1,
b: [1, 2, 3],
};
console.log(data.b);
data.b.splice(0, 1);
根据代码,可以得出结论,未展开前的数据是代码执行时的打印结果,而展开后的则是最终的打印结果。正如警示内容提示所述: 此值是在第一次展开评估得出的,之后可能已经发生更改。
总结:当我们的打印数据存在后续被二次修改的情况,为了造成在浏览器控制台展开后看到的数据前后不一的假象,我们最好选择用debugger这样就能更直观看到打印数据实时数据。