変数のデフォルト設定をちょっとだけ早くする小ネタ
Backbone.jsのコードを眺めていたら、こんなのがあった。(関数名は適当)
function foo(options) { options || (options = {}); // ... }
ここでやってるのは、optionsが偽だったらObjectで初期化する、という操作だが、次のような書き方の方が一般的だし理解するのも簡単な気がする。
function foo(options) { options = options || {}; // ... }
なんでわざわざこんな書き方をしているのか(文字数だって増えている!)考えてみたら、後者では必ずoptionsへの代入が行われるのに対し、Backbone.jsの方式ではoptionsが真の場合代入が行われない。その分高速なのだろう。
普段使いのコードでは、こんな最適化は行わなくてもいい気がするけど、覚えておいて損はなさそう。