【译】你不知道的Chrome调试工具技巧 第五天:console的log中,让人疑惑的案例

6,292

特别声明

本文是作者 Tomek Sułkowski 发布在 medium 上的一个系列。据作者透露一共有24篇,一直更新到12月24日
版权归原作者所有。

前两篇的翻译链接我已经给到了作者本人,虽然他不理解中文,但是他还是很开心哈哈,截图在最后

译者在翻译前已经和作者沟通得到了翻译整个系列的授权。
为了不影响大家阅读,授权的记录在这里

正文

在马上就要迎来假期的这 24 天里,我将会发布一系列短篇的文章,关于如何更加有意思的使用开发工具,昨天我们完成了第15 个,今天我们只有一个tips,但会是相当惊喜的一个:

16. 打印出与预期不符的对象

嘿嘿,这个(打印出来的对象,与预期不符)真的会让你大吃一惊,并且使得我们基于 console.log 的调试过程变得扑朔迷离,或者失败。

console 中打印出的对象,在打印之前,都是以引用的形式保存的。

什么意思呢?例如:你 (在代码中) 打印了一个对象,然后 (在代码中) 修改了它,最后将它打印出来 - 当我们在 console 中查看时,会看到第一条打印的记录 (进行修改前的记录) 和第二条打印的记录 (被修改之后的记录) 的值是一样的!

这样描述之后,如果你仍然不好理解,别担心,下面的视频中的这个流程会让你变得清晰:

现在想象一下,当你想要弄清楚一个对象在何时被修改的时候,如果发生了这样的情况,怎么办呢?怎么处理这样的情况呢?

你可以打印从这个对象复制出来的对象,或者...在正式的调试中使用让我们可以放心的断点或者是资源面板来替代,在后续的文章中,我们会继续讨论这个问题。

惯例: 如果你从这里学到了一些新东西

→ 你可以点个赞再走嘛~
→ 关注我:Twitter:Tomek Sułkowski

其他系列

其他此系列的文章,马上就会翻译出来,到时会贴出对应的链接在此处。

写在最后

如果你对我的翻译表示肯定,也可以关注我一波哦~ 顺便我的开源项目,求一波 star→ 看这里, 美丽的博客系统

关于这次翻译,作者的回复