誰かが私を助けてくれますか?なぜJSスニペットでこの動作をするのですか?
var foo = function() {
return {
hi: console.log("foo")
}
}
var foo1 = function() {
return
{
hi: console.log("foo1")
}
}
foo();
foo1();
なぜ「foo」だけが印刷されるのですか?
編集OK、これは自動セミコロン挿入のためですが、
JSにこのケースを実行させないようにする方法はありますか?
つまり、ここでエラーをスローする何かを行うことができますか?
EDIT2
JavaScriptの自動セミコロン挿入をヒットしました。2番目のブロックは次のものと同等です。
var foo1 = function(){
return;
{
hi:console.log("foo1")
}
}
IEは、オブジェクトリテラルをまったく返しません(したがって、console.log
は実行されません)-単にを返しundefined
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加