JS奇妙な振る舞い

アレクセイ

誰かが私を助けてくれますか?なぜJSスニペットでこの動作をするのですか?

var foo = function() {
    return {
        hi: console.log("foo")
    }
}

var foo1 = function() {
    return 
    {
        hi: console.log("foo1")
    }
}

foo();
foo1();

なぜ「foo」だけが印刷されるのですか?

フィドル

編集OK、これは自動セミコロン挿入のためですが、

JSにこのケースを実行させないようにする方法はありますか?

つまり、ここでエラーをスローする何かを行うことができますか?

EDIT2

最良の提案はJShintのようです-私はここで尋ねました

ジェームスソープ

JavaScriptの自動セミコロン挿入をヒットしました2番目のブロックは次のものと同等です。

var foo1 = function(){
  return;
  {
    hi:console.log("foo1")
  }
}

IEは、オブジェクトリテラルをまったく返しません(したがって、console.logは実行されません)-単にを返しundefinedます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事