- 首先 js 默认没有 Console 对象,Console 对象是浏览器的内置对象,它提供了一些浏览器控制台调试的接口,不同的浏览器厂商可能有一些细节上的区别,比如 IE8 以下版本就没有。
- 第二点,只有在控制台打开的情况下才会去执行 console.log 。
举个例子:
var obj = {
name: 'jhy'
};
console.log(obj.name);
obj.name = 'hhh';
console.log(obj.name);
如果代码在运行时,控制台是打开的,那么控制台接收到 console.log 命令就会执行,依次打印 'jhy' 'hhh',但是如果在代码运行完才打开控制台的话,此时 obj 的 name 属性值已改变,控制台依次执行打印操作,最后会输出 'hhh' 'hhh'。
所以控制台的打印是同步的,只是由于控制台打开的时机不同可能会有意外表现*