【问题标题】:Discrepancy between Google Chrome and Firefox谷歌浏览器和火狐浏览器之间的差异
【发布时间】:2011-11-28 19:30:29
【问题描述】:

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

谁能解释这个差异?规范决定的行为是什么?

编辑:在 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。

【问题讨论】:

标签: javascript firefox google-chrome


【解决方案1】:

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

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

【讨论】:

  • 为什么投反对票?我不认为你在这里是正确的。这是 console.log 的一个特性,不会发生在放置在那里的其他函数上。看到这个 jsFiddle jsfiddle.net/jfriend00/LRGP2 在循环中有一个不同的函数,它按预期工作。
  • 是的,我说得太快了。这是一个console.log 问题,这使得调试更具挑战性。编辑你的答案,我会投赞成票。
  • 我将 jsFiddle 添加到我的答案中。
【解决方案2】:

参见:

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

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

【讨论】:

    【解决方案3】:

    您正在记录一个活动对象

    试试下面的代码 (fiddle) 看看有什么不同:

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

    顺便说一句,在 Opera Dragongfly 中可以看到相同且更严重的示例 - 数组甚至可以在那里单击和展开。

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 2014-09-22
      相关资源
      最近更新 更多