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
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 Methodenext()
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.
return
a + b;
Der obige Code wird durch automatische Semikolon-Einfügung (ASI) wie folgt interpretiert:
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:
return (
a + b
);
Beispiele
Funktion unterbrechen
Eine Funktion stoppt sofort an der Stelle, an der return
aufgerufen wird.
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.
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 GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
return |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support