問題: console打印出的值與實際值不符的緣由。javascript
碰到這個問題是由於某一個值a更改成a1後,然而打印出來的值倒是a1,展開打印的值是a。由於不理解這個現象,致使調試代碼走了不少彎路,最後才定位到問題。java
代碼chrome
let a = { name: 'langlang', look: 'handsome'};
console.log(a);
a.name = 'shuishui';
a.look = 'beautiful';
複製代碼
緣由: 打印出的值是運行時的值,點擊展開後是最後修改的值。ui
chrome控制檯打印對象是引用的,默認沒有展開,展開後就是最後修改的值,因此會出現展開後的值與以前不一樣。spa
以前那個bug是由於a更改成a1後,後面又隱式的將其更改成a。因此打印的時候是a1的值,但後面被隱式更改了,展開後就是隱式更改後的a的值。調試
若是想看到實時的值,能夠直接打印字符串:code
console.log(JSON.stringify(a));
複製代碼
結果:cdn