W3C JavaScript for循环风格

Luk*_*asz 2 javascript

我正在浏览W3C Javascript最佳实践,我注意到他们以不同的方式编写了for-loops.

var f = document.getElementById('mainform');
var inputs = f.getElementsByTagName('input');
for(var i=0,j=inputs.length;i<j;i++){
  if(inputs[i].className === 'mandatory' &&
     inputs[i].value === ''){
    inputs[i].className += ' error';
  }
}
Run Code Online (Sandbox Code Playgroud)

它们将输入长度值分配给j,然后将j与i进行比较.而不是直接将inputs.length与i进行比较.他们在某些地方的指南中并没有这样做.除了偏好以这种方式编写for循环之外,还有其他原因吗?

Tus*_*har 5

性能略有提升.

而不是length在每次迭代后再次从数组中读取属性,而是使用缓存版本.

对于中等大小的阵列,这可以是非常小的时间.