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:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.