m2

やっちまったコード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 になる、と。