今天在chrome下调程序,用console.log打印对象信息想看变量值在执行过程中的变化,打印结果一直不对头。还以为是我的程序写得有问题,后来才发现原来chrome的console.log打印出来的信息一直是程序执行完的最后结果,而无法看到执行过程中的值。一搜,原来是webkit下的一个bug。
问题描述如下:
var obj = new Object();
obj.a = 1;
obj.b = 2;
console.log(obj);
delete obj.b;
console.log(obj);
意料中的结果应该是:
obj { a:1, b:2}
obj { a:1 }
但结果却是:
obj { a:1}
obj { a:1 }
在FF上打出来的结果是正常的,看来是chrome的问题。后来还是在stack overflow上找到了解答:Is Chrome’s JavaScript console lazy about evaluating arrays?。
it occurs when the code resides in scripts that are executed immediately (before the page is loaded), even when the console is open, whenever the page [...]