可能重复:
Is Chrome's JavaScript console lazy about evaluating arrays?怪异的console.log行为
打开Chrome开发者工具,并键入:
var a = [];console.log(a);a.push(1);console.log(a);
你会预计这会输出类似
[]
[1]
而是将其输出
[1]
[1]
行为都是相同的
var a = [];console.log(a);a[0] = 1;console.log(a);
任何人都可以解释这种现象?
在32位在OS X相同的行为运行Chrome的Windows 7
编辑:行为是一样的,不管报表是否在同一行或不行。我只是简单地将它们提供在一条线上,以便于测试。
把
var a = [];
console.log(a);
a.push(1);
console.log(a);
在一个文件中,然后运行它产生相同的行为。
编辑x 2 请参阅:http://jsfiddle.net/9N4A6/如果你不想做一个文件来测试。
我的猜测是,调用'控制台。 log(a)'将数组对象排队等待打印,但数组到字符串的转换仅在整行完成后才会发生。 – Pointy 2010-11-16 21:07:04
@CMS:没有看到 - 谢谢 – 2010-11-17 00:13:42
不客气@Jamie :) – CMS 2010-11-17 05:26:13