为什么在 console.log 已经输出后修改 chrome 开发者工具输出?

Why modify chrome developer tools output from console.log after already outputting it?

以下内容应该能让您理解:

我设置值为1,然后在控制台输出。这里输出显示 1。在我将值设置为 2 之后。相同的控制台输出显示 2.

我怎样才能避免这种情况?我尝试调试一些疯狂的狗屎,并且在输出对象时必须知道对象的值。不是对象的最新值。

控制台输出你最后一个表达式的结果。

比如你写1,回车,就会输出1。

第一个表达式(赋值)的结果是 "test" 变量的值。

你的第二个表达式(也是赋值)的结果是 "test.value" 的值,即 2。

如果您想查看变量的值,只需输入 "test" 并按回车键。

当您在控制台记录它时,它是对变量的引用,因此无论您何时打印它,它都链接到您现在更改的相同值。

你可以把它打印成一个字符串,例如,看看当时它是什么:

console.log("value: " + x);

这应该将 x 的值连接成一个字符串,这样它就不会改变 (在手机上来自 devRant,所以无法测试)

console.log("value", x) ; 

将引用存储 x 的内存,因此它将始终使用变量更新