Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
return
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Diereturn Anweisung beendet die Ausführung einer Funktion und gibt einen Wert an den Funktionsaufrufer zurück.
In diesem Artikel
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: 12console.log(getRectArea(-3, 4));// Expected output: 0Syntax
return;return expression;expressionOptionalDer Ausdruck, dessen Wert zurückgegeben werden soll. Wenn weggelassen, wird
undefinedzurückgegeben.
Beschreibung
Diereturn Anweisung kann nur innerhalb von Funktionskörpern verwendet werden. Wenn einereturn Anweisung innerhalb eines Funktionskörpers verwendet wird, wird die Ausführung der Funktion gestoppt. Diereturn Anweisung hat unterschiedliche Auswirkungen, je nachdem, in welcher Funktion sie verwendet wird:
- In einer normalen Funktion entspricht der Funktionsaufruf dem Rückgabewert.
- In einer async Funktion wird das erzeugte Promise mit dem zurückgegebenen Wert aufgelöst.
- In einer Generatorfunktion gibt die
next()-Methode des erzeugten Generatorobjekts{ done: true, value: returnedValue }zurück. - In einer async Generatorfunktion gibt die
next()-Methode des erzeugten async Generatorobjekts ein Promise zurück, das mit{ done: true, value: returnedValue }erfüllt ist.
Wenn einereturn Anweisung innerhalb einestry Blocks ausgeführt wird, wird derfinally Block, sofern vorhanden, zuerst ausgeführt, bevor der Wert tatsächlich zurückgegeben wird.
Automatische Semikolon-Einfügung
Die Syntax verbietet Zeilentrenner zwischen demreturn Schlüsselwort und dem Ausdruck, der zurückgegeben werden soll.
returna + b;Der obige Code wird durch dieautomatische Semikolon-Einfügung (ASI) in:
return;a + b;Dies führt dazu, dass die Funktionundefined zurückgibt und dera + b Ausdruck niemals ausgewertet wird. Dies kanneine Warnung in der Konsole hervorrufen.
Um dieses Problem zu vermeiden (um ASI zu verhindern), könnten Sie Klammern verwenden:
return ( a + b);Beispiele
>Eine Funktion unterbrechen
Eine Funktion stoppt sofort an dem Punkt, an demreturn 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// 5AEine Funktion zurückgeben
Siehe auch den Artikel überClosures.
function magic() { return function calc(x) { return x * 42; };}const answer = magic();answer(1337); // 56154Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-return-statement> |