Heim >Web-Frontend >js-Tutorial >Warum verursacht ein Zeilenumbruch nach einer „return'-Anweisung „undefiniert' in JavaScript?
Die Return-Anweisung in JavaScript verstehen: Warum Zeilenumbrüche schwierig sein können
In JavaScript wird die Return-Anweisung verwendet, um die Ausführung von zu beenden eine Funktion und gibt einen Wert an den aufrufenden Kontext zurück. Es tritt jedoch ein eigenartiges Verhalten auf, wenn der Rückgabewert in einer neuen Zeile platziert wird.
Das Problem: Defekte Rückgabeanweisungen
Beachten Sie den folgenden Codeausschnitt:
<code class="javascript">function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());</code>
In diesem Beispiel gibt die Funktion „correct()“ den erwarteten Wert 15 zurück, während die Funktion „falsch()“ undefiniert zurückgibt. Das ist überraschend, denn in den meisten anderen Sprachen würde die Return-Anweisung, gefolgt von einer neuen Zeile, immer noch den korrekten Wert zurückgeben.
Der Grund: Die automatische Semikolon-Einfügung von JavaScript
Der Der Schlüssel zum Verständnis dieses Verhaltens liegt in der ASI-Funktion (Automatic Semicolon Insertion) von JavaScript. ASI ist ein Mechanismus, der es JavaScript ermöglicht, bei bestimmten Zeilenumbrüchen automatisch Semikolons einzufügen, um eine gültige Codeausführung sicherzustellen.
Wenn auf die Return-Anweisung in false() eine neue Zeile folgt, behandelt ASI diese als separate Anweisung. Infolgedessen wird der Code wie folgt interpretiert:
<code class="javascript">function wrong() { return; 15; }</code>
Da die erste Anweisung (return;) keinen Wert zurückgibt, gibt die Funktion „falsch()“ undefiniert zurück.
Die Lösung: Den Rückgabewert in Klammern setzen
Um sicherzustellen, dass der Rückgabewert auch in einer neuen Zeile korrekt zurückgegeben wird, ist es notwendig, ihn in Klammern zu setzen. Dadurch wird verhindert, dass ASI ein Semikolon einfügt, und die Return-Anweisung bleibt gültig.
<code class="javascript">function wrong() { return( 15); }</code>
In diesem Fall zeigen die Klammern an, dass der Rückgabewert Teil der Return-Anweisung ist. ASI fügt kein Semikolon ein und die Funktion „falsche()“ gibt jetzt wie beabsichtigt 15 zurück.
Das obige ist der detaillierte Inhalt vonWarum verursacht ein Zeilenumbruch nach einer „return'-Anweisung „undefiniert' in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!