Das Keyword „return“

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?

Das Endergebnis einer Funktion angeben
Code an den Anfang der Funktion zurückgeben