Heim >Web-Frontend >js-Tutorial >Warum verursacht ein Zeilenumbruch nach einer „return'-Anweisung „undefiniert' in JavaScript?

Warum verursacht ein Zeilenumbruch nach einer „return'-Anweisung „undefiniert' in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 12:07:01355Durchsuche

Why Does a Line Break After a `return` Statement Cause `undefined` 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!

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