Warum Pfeilfunktionen undefiniert zurückgeben können: Das Rätsel um explizite Rückgabe vs. implizite Rückgabe
Pfeilfunktionen bieten eine prägnante Syntax zum Definieren von Funktionen in JavaScript . Beim Umgang mit in Klammern ({}) eingeschlossenen Funktionskörpern stoßen Anfänger jedoch häufig auf ein eigenartiges Problem: Warum geben diese Pfeilfunktionen undefiniert zurück?
Betrachten Sie das folgende vereinfachte Beispiel:
const f = arg => { arg.toUpperCase(); }; console.log(f("testing")); // undefined
Diese Pfeilfunktion soll das Argument in Großbuchstaben umwandeln, gibt aber undefiniert zurück. Der Grund liegt in den optionalen geschweiften Klammern um den Körper der Pfeilfunktion.
Im Gegensatz zu Pfeilfunktionen mit prägnanten Körpern (ohne geschweifte Klammern), bei denen der Körperausdruck implizit zurückgegeben wird, erfordern Pfeilfunktionen mit Funktionskörpersyntax eine explizite Return-Anweisung. Im ursprünglichen Beispiel führt das Fehlen einer expliziten Rückgabe dazu, dass undefiniert anstelle des Großbuchstabenarguments zurückgegeben wird.
Um dies zu beheben, können Sie entweder eine explizite Rückgabe verwenden:
const f = arg => { return arg.toUpperCase(); }; // Explicit return ^^^^^^
Oder Verwenden Sie einen prägnanten Text:
const f = arg => arg.toUpperCase();
Beispiele mit expliziter Rückgabe und prägnantem Text:
const f1 = arg => { return arg.toUpperCase(); }; console.log(f1("testing")); const f2 = arg => arg.toUpperCase(); console.log(f2("testing"));
Von Durch die Einhaltung dieser Regeln können Sie sicherstellen, dass Ihre Pfeilfunktionen immer den beabsichtigten Wert zurückgeben, sei es durch explizite oder implizite Rückgaben.
Das obige ist der detaillierte Inhalt vonWarum geben einige Pfeilfunktionen in JavaScript „undefiniert' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!