解析浏览器和nodejs环境下console.log()的区别

写在前面的

在开发调试过程中,我们经常需要调用console.log
方法来打印出当前变量的值,然而,console.log在浏览器环境下
有时会出现一些异常的现象

开撸代码

在浏览器和nodejs环境下分别运行下面代码

var s = {};
console.log(s);
s.title = 'ee';

在谷歌浏览器结果如下:

在nodejs环境,结果如下:

在火狐浏览器,结果如下:

分析

怎么会这样呢?在google和Safari的webkit中,console.log并没有立即拍摄对象快照,相反,
他只是存储了一个指向对象的引用,然后在代码返回事件队列时才会去拍摄快照,类似于异步操作,
在nodejs和火狐下,它是严格同步的。

原文地址:https://www.cnblogs.com/theone67/p/6739030.html