2016-12-16 3 views
0

2つのjavascript関数を書いていますが、同じ機能はしていません。2つのjavascript関数が同じように機能しない

console.log(func2());は未定義です。誰も私になぜ、どのようにこれを解決するかを教えてもらえますか?

function func1() 
 
{ 
 
    return { 
 
     bar: "hello" 
 
    }; 
 
} 
 

 
function func2() 
 
{ 
 
    return 
 
    { 
 
     bar: "hello" 
 
    }; 
 
} 
 

 
console.log(func1()); 
 
console.log(func2());

+0

@Amadan:うまくいけば、私のリストに行きます。 –

+0

@ T.J.Crowder:あなたはリストを持っていますか?公開ですか? :)私はちょうど房がなければならないことを知っているが、まだ良いものを見つけることができない時があります。 – Amadan

+0

@Amadan:私は非公式のものを持っています。ブックマークに入れておきます。 :-) –

答えて

7

それは理由automatic semicolon insertionのです。 決してreturnの後に改行を入れて、返す前にreturnの文を終了したかのように扱います(returnの後に;が挿入されます)。その結果、関数は効果的にundefinedを返します。

0

私はこれを知っています。それはセミコロンの挿入です。 func2のは

function func2() 
{ 
    return; 
    { 
     bar: "hello" 
    }; 
} 

に翻訳され、undefineを返しています。

関連する問題