Google Chrome和Firefox之间的差异
我在Chrome浏览器(14.0.835.186)和Firefox(6.0.2)上获得this fiddle的不同结果。Google Chrome和Firefox之间的差异
任何人都可以解释这种差异吗?规格确定的行为是什么?
编辑:在Firefox我看到[0]
,[0, 1]
等在Chrome我看到[0, 1, 2, 3, 4]
,[0, 1, 2, 3, 4]
,[0, 1, 2, 3, 4]
等
我使用Mac OS 10.6.8。
参见:
- Your example with console.log before the loop
- Your example using document.write
- Bizarre console.log behaviour in Chrome Developer Tools
这是一个奇怪的行为或控制台,虽然我不能告诉你为什么。
编辑:为了确保清楚,这只是控制台中的一个“错误”,在Chrome中创建数组的方式没有问题。
在这种情况下,Firefox在技术上更加正确,因为它会在循环中的每个点上输出对象的状态,而Chrome显然在等待循环结束以输出每个console.log,但我不知道涵盖控制台主机对象的标准规范。
看到这个jsFiddle:http://jsfiddle.net/jfriend00/LRGP2/显示这只是console.log有这种奇怪的行为。
为什么downvote?我不认为你在这里是正确的。这是console.log的一个特点,并不会发生在那里的其他函数。在循环中看到这个jsFiddle http://jsfiddle.net/jfriend00/LRGP2/具有不同的功能,并且按预期工作。 – jfriend00
是的,我说得太快了。这是一个'console.log'问题,这使得调试更具挑战性。编辑你的答案,我会upvote。 – Randomblue
我添加了jsFiddle到我的答案。 – jfriend00
您正在记录一个活物体。
尝试下面的代码(fiddle)和看到的区别:
var i, test = [];
for(i=0; i<5; i++) {
test.push(i);
console.log(test.toString()); // notice .toString() addition
}
顺便说一下,同样和严重的例子可以在Opera Dragongfly可见 - 阵列甚至可点击的并且可扩展的那里。
看起来像它已被报告为一个错误:https://bugs.webkit.org/show_bug.cgi?id=35801 – Jacob
为了解决它,你可以做'var a = [];的console.log(a.join( '')); a [0] = 1; console.log(a.join(','));' – timrwood