# console 篇 - console.log 的 "bug" ?

一般来说,我们会使用 console.log() 来打印某个对象,并且,两次打印之间,还会对这个对象进行修改,最后我们查看打印的结果发现,修改前的打印和修改后的打印,竟然是一样的?这样出乎意料的情况,让我们难以继续 console.log 的调试。

口说无凭,举个例子把:

我们可以看到,一共有两次打印,一次是打印原始信息,一次是打印我们修改后的信息,并且我们把属性 a0 改成 1name 属性从 Tomek 改成 Not Tomek

但打印的时候,两次都是我们修改之后的值?

那,为什么会出现这一现象?

说明:

console 中打印出的对象,在你打印出他内容之前,是以引用的方式保存的。

知道了原因,对应的就知道该怎么处理这样的情况了:

  • 打印一个从这个对象复制出来的对象。
  • 使用资源面中的断点来调试
  • 使用 JSON.stringify() 方法处理打印的结果
  • 更多你可以想到的好方法~