オライリーの「続・ハイパフォーマンスWebサイト」に書いてあったのでメモ。
ループの最大数をローカル変数に入れるってのは最初の一歩としてよく聞く。
- //ダメな例
- //ループの回数分、itemの長さを取得しにいってしまうので遅い!
- for(var i = 0; i < item.length; i++){
- //処理
- }
- //良い例
- //itemの長さを取得するのは最初の1回だけなので早い!
- var len = item.length;
- for(var i = 0; i < len; i++){
- //処理
- }
■今回知ったのはループをi++ではなくi--でやる方法
それは…
- for(var i = item.length; i--){
- //処理
- }
IEは面倒なので確認してない。誰かやって!
i < length だとtrueかfalseの判定だけど、i--だと0かどうかの判定になる。
そっちの方がtrue、falseの判定よりも速いかららしい。
これだともちろん通常のi++でやる方法とは順番が逆になるので注意。
for(var i = item.length; i--){
返信削除だとエラーになりますー。
i--の後に「;」が必要ですー。