Google Chrome和Firefox之间存在差异

时间:2011-09-30 21:59:45

标签: javascript firefox google-chrome

我在Google Chrome(14.0.835.186)和Firefox(6.0.2)上获得this fiddle的不同结果。

任何人都可以解释这种差异吗?规范确定的行为是什么?

编辑 :在Firefox上,我看到[0][0, 1]等。在Chrome上,我看到[0, 1, 2, 3, 4],{{1 },[0, 1, 2, 3, 4]

我正在使用Mac OS 10.6.8。

3 个答案:

答案 0 :(得分:3)

在这种情况下,Firefox在技术上更正确,因为它在循环中的每个点输出对象的状态,而Chrome显然等到循环结束时输出每个console.log,但我不知道标准规范,涵盖控制台主机对象。

请参阅此jsFiddle:http://jsfiddle.net/jfriend00/LRGP2/以表明这只是具有这种奇怪行为的console.log。

答案 1 :(得分:3)

查看:

这是一个奇怪的行为或控制台,虽然我不能告诉你为什么。

编辑:为了确保清楚,这只是控制台中的“错误”,在Chrome中创建数组的方式没有问题。

答案 2 :(得分:2)

您正在记录实时对象

尝试以下代码(fiddle)并查看差异:

var i, test = [];

for(i=0; i<5; i++) {
    test.push(i);
    console.log( test.toString() ); // notice .toString() addition
}

顺便说一下,在Opera Dragongfly中可以看到同样且加剧的例子 - 阵列甚至可以在那里点击和扩展。