Heim >Web-Frontend >js-Tutorial >Spielt die Platzierung von geschweiften Klammern in JavaScript-Funktionsrückgaben eine Rolle?
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!