配列の中身をすべて取り出す時に…

  //aは配列
  for (var i=0, j=a.length; i < j; i++) { /*何かの処理..*/ }

という感じのイディオムがあるけど、これってどれくらい早いんだろう?
試しに計ってみました。 ><
コードはこんな感じです。

for1.js

#!/usr/bin/env js
var a = [];
var n = 1000000;
for (var i=0; i<n; i++ ){ a[i] = i; };
for (var i=0; i<a.length; i++){ };

for1.js

#!/usr/bin/env js
var a = [];
var n = 1000000;
for (var i=0; i<n; i++ ){ a[i] = i };
for (var i=0, j=a.length; i<j; i++){ };

結果

$ for i in for*.js; do echo $i; time js $i; done
for1.js

real    0m4.729s
user    0m4.668s
sys     0m0.056s
for2.js

real    0m4.302s
user    0m4.212s
sys     0m0.084s

10^6回のループだとこのような感じみたいです。