2011/05/19

JavaScript高速化 undefined型判定編

 JavaScript高速化 関数呼び出し地獄編に続いて、今回は型判定編。
今回もWeb+DB Press Vol.58の「JavaScriptの玉手箱」を参考にしてます。

■型判定高速化

★できるだけ===(トリプルイコール)を使う
==(ダブルイコール)だと型が一致しない場合に型変換して比較するので、遅くなる。

・==の場合、null, undefinedを判別する場合は便利
==だとnull, undefinedを同時に判別してくれる
valがundefinedの場合
val == null
で比較してもtrueが返ってくる




□undefinedの判別
変数がundefinedかどうかを判定する方法は4つ
1.ダミー変数と比較
2.typeofで文字列と比較
3.window.undefinedと比較
4.void演算子でundefinedを生成して比較

この中で処理が早くて著者もオススメしてるのが4番のvoid演算子でundefinedを生成して比較

if(val === void 0){}

※void演算子はその場でundefinedを作ってくれる

1番はChrome以外でほぼ最速。でもChromeだと遅い(といってもIE8の半分以下の時間しかかからないみたい)。
2番はChrome以外で遅い。特にOpera、FireFoxで遅い
3番はFireFox以外で遅め。


0 件のコメント:

コメントを投稿