JavaScripの高速化メモ ①

忘れないための個人的なメモです。


for文の高速化

//遅い
for(i=0;i<array.length;i++){}
//速い
for(var i=0,len=array.length;i<len;i++){}

lengthは代入した方が早いらしい。


配列とオブジェクトの生成について

//遅い
var obj = {}, arr = [];
//速い
var obj = new Object, arr = new Array;

簡単だから{}とか略しちゃうけど、ちゃんとnewでやった方がいいらしい。。


グローバル変数は、一度ローカルにキャッシュ

//documentを変数に入れておく
var d = document, d.getElementById(...);


withを使用する場合

//withを使うと遅くなる
var obj = {test: 'hoge', str: ''}
with (obj) {
    var i = 10000;
    while(i--) str += test;
    return str;
}


//直接操作した方が速い
var obj = {test: 'hoge', str: ''}, i = 10000;
    while(i--) obj.str += obj.test;
    returnobj str;
}

直が文字化けしてる。。
withは結構重いらしいです。