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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
return

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch