Heim >Web-Frontend >js-Tutorial >Warum geben einige Pfeilfunktionen „undefiniert' zurück, während andere dies nicht tun?
Rückgabewerte in Pfeilfunktionen verstehen: Ein Dilemma von explizit vs. implizit
Pfeilfunktionen, die in ES6 eingeführt wurden, erfreuen sich zunehmender Beliebtheit prägnante Syntax und Flexibilität. Eine häufige Falle, die unerfahrene Programmierer plagt, entsteht jedoch beim Umgang mit ihren Rückgabewerten.
Betrachten Sie die folgende Pfeilfunktion:
const f = arg => { arg.toUpperCase(); };
Beim Aufruf gibt diese Funktion unerwartet undefiniert zurück. Warum passiert das?
Die implizite Rückgabe in prägnanten Pfeilfunktionen
Pfeilfunktionen bieten zwei unterschiedliche Syntaxvarianten: eine prägnante Form ohne geschweifte Klammern und eine ausführlichere Form mit geschweifte Klammern. Die prägnante Form gibt implizit das Ergebnis des Hauptausdrucks zurück, sodass keine explizite Return-Anweisung erforderlich ist. Somit kann eine Pfeilfunktion wie arg => arg.toUpperCase(); gibt automatisch das großgeschriebene Argument zurück.
Explizite Rückgaben in Pfeilfunktionen mit geschweiften Klammern
Andererseits verwenden Pfeilfunktionen mit geschweiften Klammern einen traditionellen Funktionskörper. In diesem Szenario gibt es keine implizite Rückgabe. Um einen Wert aus einer solchen Pfeilfunktion zu erhalten, muss eine explizite Return-Anweisung verwendet werden. Änderung unseres vorherigen Beispiels:
const f = arg => { return arg.toUpperCase(); };
Jetzt gibt die Funktion das großgeschriebene Argument korrekt zurück. Alternativ könnten wir die prägnantere Form verwenden, indem wir die geschweiften Klammern weglassen:
const f = arg => arg.toUpperCase();
In diesem Fall gibt die Pfeilfunktion implizit das Ergebnis des Ausdrucks zurück, also das großgeschriebene Argument.
Wenn Sie den Unterschied zwischen impliziten und expliziten Rückgaben in Pfeilfunktionen verstehen, können Sie die Fallstricke vermeiden, die beim Umgang mit ihren Rückgabewerten auftreten.
Das obige ist der detaillierte Inhalt vonWarum geben einige Pfeilfunktionen „undefiniert' zurück, während andere dies nicht tun?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!