Heim >Web-Frontend >js-Tutorial >Spielt die Platzierung von geschweiften Klammern in JavaScript-Funktionsrückgaben eine Rolle?

Spielt die Platzierung von geschweiften Klammern in JavaScript-Funktionsrückgaben eine Rolle?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-22 21:03:29789Durchsuche

Does Curly Brace Placement Matter in JavaScript Function Returns?

Auswirkungen der Platzierung von geschweiften Klammern auf JavaScript-Funktionsergebnisse

In JavaScript kann die Platzierung von geschweiften Klammern innerhalb von Funktionen das Verhalten des Codes erheblich beeinflussen. Betrachten Sie die folgenden zwei Beispiele:

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

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

In diesem Fall gibt die Funktion test() undefiniert zurück und die Warnmeldung „Nein – es ist kaputt: undefiniert“ wird angezeigt. Wenn die geschweifte Klammer jedoch in derselben Zeile wie return platziert wird, wie unten gezeigt:

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

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

Die Funktion test() gibt ein Objekt zurück und die Warnmeldung zeigt „fantastisch“ an.

Diese Diskrepanz ist auf die automatische Semikolon-Einfügung von JavaScript zurückzuführen. Wenn eine Zeile nicht mit einem Semikolon endet, aber möglicherweise das Ende einer Anweisung markieren könnte, fügt JavaScript automatisch eines ein. Folglich wird der erste Codeausschnitt effektiv wie folgt interpretiert:

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

Das Semikolon nach der Rückgabe; beendet die Return-Anweisung und führt dazu, dass der geschweifte Klammerblock zu nicht erreichbarem Code wird. Somit gibt test() undefiniert zurück.

Im Gegensatz dazu löst das zweite Beispiel keine automatische Semikolon-Einfügung aus, was zu einem gültigen Objektrückgabewert führt. Dies entspricht dem folgenden Code:

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

Das obige ist der detaillierte Inhalt vonSpielt die Platzierung von geschweiften Klammern in JavaScript-Funktionsrückgaben eine Rolle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn