今日はまったこと

しょうもないことではまってしまった。

演算子は 便利だ
var foo = typeof hoge != 'undefined' ? hoge : "hage"

var foo = hoge || "hage"

みたいにかける。つまり || の左側が偽*1なら右側を返すという具合だ。


で、はまったこと。

var foo = 0;
var bar = foo || 1;

foo が定義されていないと 1 を代入しろという風に書いたつもりだったんだけど
0 は 偽なので常に 1 が代入されてしまう。
もちろん、 0 じゃなくて false, null もおなじ挙動を示す。


以上誰もはまらないこと。

*1:この偽の意味が重要