这些迭代有什么不同?

时间:2011-09-22 08:35:37

标签: javascript variables loops

迭代的区别是什么:

var recordId;
for(recordId in deleteIds){
  ...
}

for(var recordId in deleteIds){
  ...
}

它说隐式定义(它是什么),它们之间是否存在性能差异?

2 个答案:

答案 0 :(得分:1)

“隐式声明”是在使用var声明之前赋值的变量。该场景使变量在尽可能大的范围内声明(“全局”范围)。

但是,在您的代码示例中,recordId在分配(var recordId)之前就已声明,因此没有问题。

关于你的另一个问题,不,没有明显的性能差异。

答案 1 :(得分:1)

这两个样本是等价的,但第一个可能来自于遵循JavaScript中推荐的模式,它在每​​个函数的顶部声明所有变量。

样品:

var recordId,
    i = 0;

for(recordId in deleteIds){
  ...
  i++;
}

有关此问题的更多说明,请访问JSLint error: Move all 'var' declarations to the top of the function