Heim >Web-Frontend >js-Tutorial >Warum gibt die „return'-Anweisung von JavaScript manchmal „undefiniert' zurück?

Warum gibt die „return'-Anweisung von JavaScript manchmal „undefiniert' zurück?

DDD
DDDOriginal
2024-11-05 16:14:02336Durchsuche

Why Does JavaScript's `return` Statement Sometimes Return `undefined`?

Das mysteriöse Return Statement-Rätsel von JavaScript

Betrachten Sie den folgenden JavaScript-Codeausschnitt:

function correct() {
  return 15;
}

function wrong() {
  return 15;
}

console.log("correct() called : " + correct());
console.log("wrong() called : " + wrong());

Überraschenderweise richtig() gibt den erwarteten Wert von 15 zurück, während false() undefiniert zurückgibt. Dieses Verhalten unterscheidet sich von den meisten anderen Programmiersprachen und wir fragen uns, warum es auftritt.

Die technische Erklärung: Unsichtbare Semikolons

Die Semikolons von JavaScript und der Interpreter sind optional fügt sie automatisch an bestimmten Zeilenumbrüchen ein. Allerdings stimmen die Annahmen des Interpreters möglicherweise nicht immer mit unseren Absichten überein.

Im Fall von false() folgt auf die Return-Anweisung ein Zeilenumbruch. Dadurch wird das Einfügen eines Semikolons ausgelöst, was zu folgendem Code führt:

function wrong() {
  return;
  15;
}

Aufschlüsselung des Problems: Return-Syntax

Auf die return-Anweisung muss unmittelbar folgen der Rückgabewert. In false() beendet das Semikolon nach return die Anweisung und lässt die folgende Zeile getrennt.

Die Lösung: Ausdrücke in Klammern setzen

Um diese Verwirrung zu vermeiden, haben wir kann den Rückgabeausdruck in Klammern einschließen:

function wrong() {
  return (
    15
  );
}

Die Klammern verhindern, dass der Interpreter ein Semikolon einfügt und stellen sicher, dass der Ausdruck korrekt ausgewertet wird.

Die Argumentation von TypeScript verstehen

TypeScript, die typisierte Obermenge von JavaScript, gibt im obigen Code einen Compilerfehler aus, was die Wichtigkeit einer korrekten Return-Anweisungssyntax hervorhebt. Dies unterstreicht die Wichtigkeit solcher Überlegungen bei der Definition von Funktionen in JavaScript.

Das obige ist der detaillierte Inhalt vonWarum gibt die „return'-Anweisung von JavaScript manchmal „undefiniert' zurück?. 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