return

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die return-Anweisung beendet die Ausführung einer Funktion und gibt einen Wert zurück an den Aufrufer dieser Funktion.

Probieren Sie es aus

function getRectArea(width, height) {
  if (width > 0 && height > 0) {
    return width * height;
  }
  return 0;
}

console.log(getRectArea(3, 4));
// Expected output: 12

console.log(getRectArea(-3, 4));
// Expected output: 0

Syntax

js
return;
return expression;
expression Optional

Der Ausdruck, dessen Wert zurückgegeben werden soll. Wenn dieser weggelassen wird, wird undefined zurückgegeben.

Beschreibung

Die return-Anweisung kann nur innerhalb von Funktionskörpern verwendet werden. Wenn eine return-Anweisung in einem Funktionskörper verwendet wird, wird die Ausführung der Funktion abgebrochen. Die return-Anweisung hat unterschiedliche Auswirkungen in verschiedenen Funktionen:

  • In einer einfachen Funktion wird der Funktionsaufruf mit dem Rückgabewert ausgewertet.
  • In einer asynchronen Funktion (async function) wird die daraus resultierende Promise mit dem zurückgegebenen Wert aufgelöst.
  • In einer Generatorfunktion gibt die Methode next() des erzeugten Generator-Objekts { done: true, value: returnedValue } zurück.
  • In einer asynchronen Generatorfunktion (async generator function) gibt die Methode next() des erzeugten asynchronen Generator-Objekts ein Promise zurück, das mit { done: true, value: returnedValue } erfüllt wird.

Wenn eine return-Anweisung innerhalb eines try-Blocks ausgeführt wird, wird, falls vorhanden, zunächst der zugehörige finally-Block ausgeführt, bevor der Wert tatsächlich zurückgegeben wird.

Automatische Semikolon-Einfügung

Die Syntax verbietet Zeilenumbrüche zwischen dem return-Schlüsselwort und dem zurückzugebenden Ausdruck.

js
return
a + b;

Der obige Code wird durch automatische Semikolon-Einfügung (ASI) wie folgt interpretiert:

js
return;
a + b;

Dies führt dazu, dass die Funktion undefined zurückgibt und der Ausdruck a + b nie ausgewertet wird. Dies könnte eine Warnung in der Konsole erzeugen.

Um dieses Problem zu vermeiden (und ASI vorzubeugen), könnten Sie Klammern verwenden:

js
return (
  a + b
);

Beispiele

Funktion unterbrechen

Eine Funktion stoppt sofort an der Stelle, an der return aufgerufen wird.

js
function counter() {
  // Infinite loop
  for (let count = 1; ; count++) {
    console.log(`${count}A`); // Until 5
    if (count === 5) {
      return;
    }
    console.log(`${count}B`); // Until 4
  }
  console.log(`${count}C`); // Never appears
}

counter();

// Logs:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

Eine Funktion zurückgeben

Siehe dazu auch den Artikel über Closures.

js
function magic() {
  return function calc(x) {
    return x * 42;
  };
}

const answer = magic();
answer(1337); // 56154

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-return-statement

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch