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
Freigeben: 2024-12-20 09:33:10
Original
861 Leute haben es durchsucht

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(); };
Nach dem Login kopieren

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();
Nach dem Login kopieren

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

console.log(f("testing")); // "TESTING"
Nach dem Login kopieren
Nach dem Login kopieren

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(); };
Nach dem Login kopieren

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

console.log(f("testing")); // "TESTING"
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage