用一分鐘理解console的這個原理,多留幾根黑髮~
問題: console打印出的值與實際值不符的原因。
碰到這個問題是因為更改某一個值a後將其儲存起來,更改為a1後,然而打印出來的值卻是a1,展開列印的值是a。因為不理解這個現象,導致除錯程式碼走了很多彎路,最後才定位到問題。
先來看現象

原因
程式碼
let a = { name: 'langlang', look: 'handsome'}; console.log(a); a.name = 'shuishui'; a.look = 'beautiful'; 複製程式碼
原因: 打印出的值是執行時的值,點選展開後是最後修改的值。

chrome控制檯列印物件是引用的,預設沒有展開,展開後就是最後修改的值,所以會出現展開後的值與之前不同。
如果想看到實時的值,可以直接列印字串:
console.log(JSON.stringify(a)); 複製程式碼
結果:
