ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「return」ステートメントの後の改行が「unknown」を引き起こすのはなぜですか?
JavaScript の return ステートメントを理解する: 改行が難しい理由
JavaScript では、return ステートメントは次の実行を終了するために使用されます。関数を呼び出して、呼び出し元のコンテキストに値を返します。ただし、戻り値が新しい行に配置されると、特有の動作が発生します。
問題: Return ステートメントの破損
次のコード スニペットを考えてみましょう:
<code class="javascript">function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());</code>
この例では、correct() 関数は期待値 15 を返しますが、wrong() 関数は未定義を返します。他のほとんどの言語では、改行が続く return ステートメントでも正しい値が返されるため、これは驚くべきことです。
理由: JavaScript の自動セミコロン挿入
この動作を理解する鍵は、JavaScript の自動セミコロン挿入 (ASI) 機能にあります。 ASI は、JavaScript が特定の改行文字にセミコロンを自動的に挿入して、有効なコードを実行できるようにするメカニズムです。
wrong() の return ステートメントの後に改行が続く場合、ASI はそれを別のステートメントとして扱います。その結果、コードは次のように解釈されます:
<code class="javascript">function wrong() { return; 15; }</code>
最初のステートメント (return;) が値を返さないため、wrong() 関数は unknown を返します。
解決策: 戻り値を括弧で囲む
新しい行であっても戻り値が正しく返されるようにするには、戻り値を括弧で囲む必要があります。これにより、ASI はセミコロンを挿入できなくなり、return ステートメントは有効なままになります。
<code class="javascript">function wrong() { return( 15); }</code>
この場合、括弧は戻り値が return ステートメントの一部であることを示します。 ASI はセミコロンを挿入せず、間違った() 関数は意図したとおり 15 を返すようになりました。
以上がJavaScript で「return」ステートメントの後の改行が「unknown」を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。