2017-07-20 80 views
0

下面应该让你明白:为什么在输出之后修改console.log的chrome开发者工具输出?

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

我该如何避免这种情况?我尝试调试一些疯狂的狗屎,并且在输出时必须知道对象的值。不是来自对象的最新值。 enter image description here

+0

更新不,我不明白你的问题,请ELABO您遇到的问题的速率 – Luca

+0

[Google Chrome console.log()与对象和数组不一致的可能重复](https://stackoverflow.com/questions/24175017/google-chrome-console-log-inconsistency-with-对象和数组) – Xufox

+0

也许你是对的@Xufox。我明天会评估它。 – Buntel

回答

4

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

您可以打印一个字符串,例如,看看是什么在这一点上:

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

这应该串联x的值作为一个字符串,因此它不会改变 (上从devRant移动所以无法测试)

console.log("value", x) ; 

将引用x被存储在何处的内存,所以它总是与可变

+0

console.log(JSON.parse(JSON.stringify(object)))解决了这个问题。谢谢! – Buntel

1

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

例如,如果写1并按下确认键时,输出1。

您的第一个表达式(这是一个分配)的结果是“测试”变量的值。

你的第二个表达式(这也是一个赋值)的结果是“test.value”,这是2

如果你想看到你的变量值的价值,只写“测试“然后按回车。

+0

我想在第二次赋值之前看到“test.value”,它应该是1.但是,当我将第二个赋值变为2之前输出的控制台输出赋值为2时,控制台说test.value为2。但是当时它已经写入test.value到控制台,它的值为1. – Buntel

相关问题