ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「return」の後の改行によって「unknown」が返されるのはなぜですか?

JavaScript で「return」の後の改行によって「unknown」が返されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-06 11:20:03903ブラウズ

Why Does a Newline After `return` in JavaScript Cause `undefined` to Be Returned?

JavaScript: 新しい行の return ステートメントが機能しないのはなぜですか?

JavaScript では、関数から値を返すために return ステートメントが使用されます。ただし、戻り値が新しい行に配置されると、予期しない動作が発生する可能性があります。なぜこれが起こるのかを詳しく見てみましょう。

問題を説明するために、次のコードを考えてみましょう。

<code class="javascript">function correct() {
  return 15;
}

function wrong() {
  return
        15;
}</code>

correct() 関数では、return 15 ステートメントが 1 行にあります。この関数を実行すると、期待値 15 が返されます。ただし、間違った() 関数では、return ステートメントの後に改行が続きます。この関数を実行すると、15 の代わりに未定義が返されます。

驚くべきことに、次の間違った() 実装は正しく動作します:

<code class="javascript">function wrong() {
  return(
        15);
}</code>

これは、構文が間違っていないことを示唆しています。では、最初の構文が間違っているのはなぜでしょうか。 () 実装は失敗しますか?

セミコロンの役割を理解する

JavaScript では、セミコロンはオプションです。ただし、インタプリタは必要と判断した特定の改行文字にそれらを自動的に挿入します。最初の bad() 実装の場合、return の後の改行によってセミコロンの挿入がトリガーされます。

結果のコードは次のようになります。

<code class="javascript">function wrong() {
  return;
        15;
}</code>

これは正しくありません。 return ステートメントの後に式 (15) が続くようになりましたが、これは許可されていません。

レスキューへの括弧

2 番目の bad() 実装では、括弧 ( ) return 15 式を囲むと、インタープリタがセミコロンを挿入できなくなります。代わりに、式はそのまま残り、正しい戻り値が得られます。

したがって、JavaScript で return ステートメントを使用する場合は、後続の式のない単一行にあることを確認してください。必要に応じて、かっこを使用してセミコロンの挿入動作を制御し、必要な戻り値を実現します。

以上がJavaScript で「return」の後の改行によって「unknown」が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。