やっちまったコード2
マウスカーソル弄っててハマったとこ。
var onNorth = false; var onSouth = false; var onEast = false; var onWest = false; var direction = onNorth ? 'n' : '' + onSouth ? 's' : '' + onWest ? 'w' : '' + onEast ? 'e' : '' ; alert(direction); // ??
これの実行結果がすぐわかる人はすげーなと思う。
改行なくせば割と簡単なんだけど。
var direction = onNorth ? 'n' : '' + onSouth ? 's' : '' + onWest ? 'w' : '' + onEast ? 'e' : '' ;
我ながらめちゃくちゃなコードだな。よくコンパイル通ったよ。
括弧をつけてみるとこうなる。
var direction = onNorth ? 'n' : (('' + onSouth) ? 's' : (('' + onWest) ? 'w' : (('' + onEast) ? 'e' : '')));
('' + onSouth)
が文字列の 'false'
と解釈されて true になる、と。