2010-02-17

Javascriptで改行が特別な意味を持つケース

というより、Automatic Semicolon Insertion(自動セミコロン挿入)なのだが。

postfix increment とpostfix decrement

var fail = 0 ;
fail // 自動的にセミコロンが補われる
++ ; // ill-formed.

fail // 自動的にセミコロンが補われる
-- ; // ill-formed.

continue statementとbreak statement

fail: while (true)
{
    continue // 自動的にセミコロンが補われる
        fail ;// ill-formed.

    break // 自動的にセミコロンが補われる
        fail ;// ill-formed.
}

return statement

function return_undefined()
{
    var fail = 0 ;
    return // 自動的にセミコロンが補われる。undefinedを返す。
        fail ;
}

throw statement

throw // 自動的にセミコロンが補われる。throw文のexpressionの省略はできないので、ill-formed.
    0 ;

}の場合

        var x = function (){ } // 自動的にセミコロンが補われる。well-formed.
        x() ;

結論:Javascriptは変態だ。

No comments: