今日はまったこと
しょうもないことではまってしまった。
演算子は 便利だ |
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:この偽の意味が重要