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 an den Funktionsaufrufer zurück.
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;
expressionOptional-
Der Ausdruck, dessen Wert zurückgegeben werden soll. Wird dieser weggelassen, wird
undefinedzurü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 gestoppt. Die return Anweisung hat unterschiedliche Effekte, wenn sie in verschiedenen Funktionen platziert wird:
- In einer einfachen Funktion wird der Funktionsaufruf auf den Rückgabewert ausgewertet.
- In einer
asyncFunktion wird das erzeugte Versprechen 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
asyncGeneratorfunktion gibt dienext()-Methode des erzeugtenasyncGeneratorobjekts ein Versprechen zurück, das mit{ done: true, value: returnedValue }erfüllt ist.
Wenn eine return Anweisung innerhalb eines try Blocks ausgeführt wird, wird dessen finally Block, falls vorhanden, zuerst 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 Ausdruck, der zurückgegeben werden soll.
return
a + b;
Der obige Code wird durch die automatische Semikolon-Einfügung (ASI) in:
return;
a + b;
umgewandelt. Dies führt dazu, dass die Funktion undefined zurückgibt und der a + b Ausdruck nie ausgewertet wird. Dies kann eine Warnung in der Konsole erzeugen.
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 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 auch den Artikel über Closures.
function magic() {
return function calc(x) {
return x * 42;
};
}
const answer = magic();
answer(1337); // 56154
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-return-statement |