JavaScript:このRETURNステートメントが構文エラーを発生させるのはなぜですか?

StackOverflow https://stackoverflow.com//questions/12687464

  •  12-12-2019
  •  | 
  •  

質問

私はApatana 3を使っています、私はそれをより明確に見せるためにJSコードフォーマッタを少し修正しました。

    copyOffset : function( index )
    {
        return
        {
            x : index, y : index
        };
    }
.

Firebug私に私にしてください:

SyntaxError: invalid label
.

変更した場合:

    copyOffset : function( index )
    {
        return{
            x : index, y : index
        };
    }
.

は大丈夫でしょう、これら2つの返品ステートメントの間の差異が何であるかを教えてくれる人は?

役に立ちましたか?

解決

違いは、最初のスニペットが実際に解釈されることです...

copyOffset : function( index )
{
    return;
    {
        x : index, y : index
    };
}
.

自動セミコロン挿入:JavaScriptパーサーがあるようなステートメントを見たとき完了しましたが、セミコロンを欠場、それを修正しようとします。

とはい、時々役に立つとしても、それはかなり迷惑になることがあります。この記事詳細は、このJavaScript機能を詳しく説明しています。

他のヒント

haha、これは古典的なものです。)

JavasRIPTが

return
{
.

{を新しいブロックとして扱い、セミコロンを暗黙のうちに挿入するため:

return;
{
.

このように未定義:-d

問題は、ステートメントが意味があるときに行の最後にセミコロンを挿入することです。returnはそれ自身の上に立つことができるので、JavaScriptはそれを完全な文として解釈し、セミコロンを挿入してコードを挿入します。

実際には、これが理由です。

copyOffset : function( index ){
    return{
        x : index, y : index
    };
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top