Heim >Web-Frontend >js-Tutorial >Warum geben Pfeilfunktionen mit geschweiften Klammern „undefiniert' zurück, es sei denn, sie werden explizit zurückgegeben?

Warum geben Pfeilfunktionen mit geschweiften Klammern „undefiniert' zurück, es sei denn, sie werden explizit zurückgegeben?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 09:33:10857Durchsuche

Why Do Arrow Functions with Curly Braces Return `undefined` Unless Explicitly Returned?

Pfeilfunktionen: Den fehlenden Rückgabewert verstehen

Im Bereich JavaScript haben sich Pfeilfunktionen zu einer beliebten Wahl für Prägnanz und Ausdruckskraft entwickelt Code. Bei der Verwendung der Funktionskörperversion (mit geschweiften Klammern) kann jedoch eine häufige Gefahr auftreten.

Das Problem: Fehlender Rückgabewert

Betrachten Sie die folgende Pfeilfunktion:

const f = arg => { arg.toUpperCase(); };

Beim Aufruf gibt diese Funktion undefiniert anstelle des erwarteten Werts zurück. Warum ist das so?

Enthüllung der impliziten Rückgabe

In Pfeilfunktionen wird die Rückgabeanweisung implizit angewendet, wenn der prägnante Körper (ohne geschweifte Klammern) verwendet wird. Dies bedeutet, dass das Ergebnis des Ausdrucks in den Klammern zum zurückgegebenen Wert wird.

Beispiel für einen prägnanten Textkörper:

const f = arg => arg.toUpperCase();

Der Aufruf dieser Funktion gibt nun die gewünschte Zeichenfolge zurück:

console.log(f("testing")); // "TESTING"

Explizite Rückgabe für Funktion Körper

Bei der Verwendung von geschweiften Klammern ist jedoch eine explizite Return-Anweisung erforderlich, um anzugeben, was zurückgegeben werden soll. Andernfalls gibt die Funktion undefiniert zurück.

Explizites Rückgabebeispiel:

const f = arg => { return arg.toUpperCase(); };

Der Aufruf dieser geänderten Funktion führt zum gleichen Ergebnis:

console.log(f("testing")); // "TESTING"

Denken Sie daran: Implizite Rückgabe gibt es im prägnanten Körper von Pfeilfunktionen, während bei Verwendung von Curly eine explizite Rückgabe erforderlich ist Klammern für den Funktionskörper. Das Verständnis dieser Unterscheidung ist entscheidend, um unerwartete undefinierte Werte in Ihrem Code zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum geben Pfeilfunktionen mit geschweiften Klammern „undefiniert' zurück, es sei denn, sie werden explizit zurückgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn