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

特别声明

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

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

译者在翻译前已经和作者沟通得到了翻译整个系列的许可。
为了不影响大家阅读,获得许可的记录会放在本文的最后~

正文

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

16. 打印出来的对象,并不是我们所期待的样子

好家伙,这个(打印出来的对象,并不是我们所期待的样子)会让你摔个跟头,并且使基于console.log的调试过程变得扑朔迷离,或者调试失败。

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

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

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

现在想象一下,如果在你想要弄清楚一个对象是在何时被修改的时候,发生了这样的情况。

怎么处理这样的情况呢?你可以打印一个从这个对象复制出来的对象,或者...在正式的调试中使用可以让我们放心的断点或者资源面板来替代,在后续的文章中,我们会继续提到这个问题。

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

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

其他系列

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

写在最后

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

许可记录

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

猜你喜欢

转载自juejin.im/post/5c0edc31f265da611c26d08a