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
Freigeben: 2024-10-22 21:03:29
Original
820 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage