【问题标题】:using var keyword in a for loop在 for 循环中使用 var 关键字
【发布时间】:2012-05-19 09:59:45
【问题描述】:

这与"var" or no "var" in JavaScript's "for-in" loop? 有关(但更多地谈论范围 - 这个问题与范围无关)

循环遍历对象或数组是否更有效/更常见,为什么?

选项 1 - 在循环外设置 var

// Object
var x;
for (x in obj) { ... }
// Array
var i;
for (i = 0; i < array.length; ++i) { ... }

选项 2 - 在循环中设置 var

// Object
for (var x in obj) { ... }
// Array
for (var i = 0; i < array.length; ++i) { ... }

【问题讨论】:

  • 修复了您的代码,使用 var x 而不是 var i

标签: javascript performance coding-style standards


【解决方案1】:

var 被提升并作用于函数而不是块,因此编译器将优化差异。

第二个稍微快一些,因为通过网络发送的字符更少。这种差异并不足以成为您决定使用哪个的影响因素。

【讨论】:

    【解决方案2】:

    实际上,最快的方法是在列表中循环 BACKWARDS(确保在影响结果时不要这样做)。 见Are loops really faster in reverse?

    var i = arr.length; //or 10
    while(i--)
    {
    
    }
    

    关于 var 问题,只要您还没有使用该名称/重置值/之后删除引用,就可以在外面声明它。

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      相关资源
      最近更新 更多