ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 関数の戻り値で中括弧の配置は重要ですか?

JavaScript 関数の戻り値で中括弧の配置は重要ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 21:03:29790ブラウズ

Does Curly Brace Placement Matter in JavaScript Function Returns?

JavaScript 関数の結果に対する中かっこの配置の影響

JavaScript では、関数内の中かっこの配置がコードの動作に大きな影響を与える可能性があります。次の 2 つの例を考えてみましょう。

<code class="javascript">function test()
{
  return
  {
    javascript: "fantastic"
  };
}

var r = test();
try {
  alert(r.javascript);
} catch (e) {
  alert('no - it broke: ' + typeof r);
}</code>

この場合、test() 関数は un 未定義を返し、「いいえ、壊れました: 未定義」という警告メッセージが表示されます。ただし、以下に示すように中括弧が return と同じ行に配置されている場合:

<code class="javascript">function test()
{
  return {
    javascript: "fantastic"
  };
}

var r = test();
try {
  alert(r.javascript);
} catch (e) {
  alert('no - it broke: ' + typeof r);
}</code>

test() 関数はオブジェクトを返し、警告メッセージには「fantastic」と表示されます。

この不一致は、JavaScript の自動セミコロン挿入に起因します。行がセミコロンで終わっていないが、ステートメントの終わりを示す可能性がある場合、JavaScript はセミコロンを自動的に挿入します。したがって、最初のコード スニペットは次のように実質的に解釈されます。

<code class="javascript">function test()
{
  return; // inserted semicolon
  {
    javascript: "fantastic"
  };
}</code>

return の後のセミコロン。 return ステートメントを終了すると、中括弧ブロックが到達不能なコードになります。したがって、test() は undefined を返します。

対照的に、2 番目の例では自動セミコロン挿入がトリガーされず、有効なオブジェクトの戻り値が返されます。これは次のコードと同等です:

<code class="javascript">function test() {
    var myObject = new Object();
    myObject.javascript = "fantastic";
    return myObject;
}</code>

以上がJavaScript 関数の戻り値で中括弧の配置は重要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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