2017-07-20 95 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

相關問題