Verwenden Sie return
, um den Wert anzugeben, den die Funktion als Endergebnis erzeugen soll. Wenn der Interpreter eine return
-Anweisung erreicht, endet die Funktion, die diese Anweisung enthält, sofort und der angegebene Wert wird an den Kontext zurückgegeben, in dem die Funktion aufgerufen wurde:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Eine Funktion, die einen Wert zurückgibt, kann effektiv wie die darin enthaltenen Daten behandelt werden, ähnlich wie eine Variable:
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
Eine return
-Anweisung ohne Ausdruck beendet die Funktion und gibt undefined
zurück:
const myFunction = function() {
return;
}
myFunction();
> undefined
Da das Keyword return
das Ende einer Funktion signalisiert, wird Code, der auf ein erkanntes return
folgt, nicht ausgeführt:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Außerdem kann Code, der einer gefundenen return
-Anweisung folgt, in den Entwicklungskonsolen einiger Browser zu einer Warnung (aber nicht zu einem Fehler) führen:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
Dies gilt wieder nur für eine return
-Anweisung, die während der Ausführung der Funktion auftritt, und nicht für Code, der sequenziell auf eine return
-Anweisung folgt:
const myFunction = function( myParameter ) {
if( myParameter === undefined ) {
return "This is the result.";
}
return "This is the alternate result.";
}
myFunction();
> "This is the result."
myFunction( true );
> "This is the alternate result."
Die Kurzschlussauswertung einer Funktion mit einem frühen return
kann für kürzeren Code als eine einzelne return
-Anweisung am Ende einer Funktion sorgen. Die folgende Funktion bestimmt beispielsweise, ob ein übergebener Wert ein String mit fünf oder mehr Zeichen ist. Wenn der übergebene Wert kein Stringliteral ist, ist der Code zum Zählen der Zeichen nicht erforderlich. Die Funktion kann dann sofort ein false
-Ergebnis zurückgeben:
function myFunction( myString ) {
if( typeof myString !== "string" ) {
return false;
}
if( myString.length >= 5 ) {
return true;
} else {
return false;
}
}
myFunction( 100 );
> false
myFunction( "St" );
> false
myFunction( "String." );
> true
Pfeilfunktionsausdrücke sind eindeutig, da das Schlüsselwort return
impliziert wird, wenn ein Pfeilfunktionstext einen einzelnen Ausdruck und keine Blocksyntax enthält:
const myFunction = () => 2 + 2;
myFunction();
> 4
Wenn Sie den Funktionstext mit Blocksyntax definieren, ist ein explizites return
erforderlich, auch wenn der Funktionstext nur einen einzigen Ausdruck enthält:
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
Wissen testen
Wofür wird return
verwendet?