Funktionen in JavaScript

Funktionen in JavaScript

Dieser Artikel erklärt Funktionen in JavaScript.

YouTube Video

Funktionen in JavaScript

Funktionen in JavaScript sind Blöcke von wiederverwendbarem Code, die verwendet werden, um bestimmte Aufgaben auszuführen. Die Verwendung von Funktionen verbessert die Lesbarkeit des Codes und erleichtert die Wartung. Funktionen können auf verschiedene Weise definiert und flexibel mit Argumenten und Rückgabewerten manipuliert werden.

Möglichkeiten, Funktionen zu definieren

Funktionsdeklaration

Funktionen können mit dem Schlüsselwort function definiert werden. Funktionsdeklarationen werden gehoisted, bevor der Code ausgeführt wird, sodass sie aufgerufen werden können, bevor sie definiert sind.

1console.log(greet("Everyone")); // Hello, Everyone
2
3function greet(name) {
4    return "Hello, " + name;
5}
6
7console.log(greet("Alice")); // Hello, Alice

In diesem Beispiel wird, da die greet-Funktion vor ihrer Deklaration aufgerufen wird, Hello, Everyone und Hello, Alice angezeigt.

Funktionsausdruck

Funktionen können auch definiert werden, indem sie einer Variablen zugewiesen werden. In diesem Fall wird die Funktion nicht gehoisted und kann nur aufgerufen werden, nachdem sie definiert wurde.

1const greet = function(name) {
2    return "Hello, " + name;
3};
4
5console.log(greet("Bob")); // Hello, Bob

In diesem Beispiel wird Hello, Bob angezeigt.

Pfeilfunktion

Pfeilfunktionen sind eine Möglichkeit, Funktionen mit einer kürzeren Syntax zu definieren. Sie sind besonders nützlich bei der Verwendung von anonymen Funktionen (Funktionen ohne Namen). Pfeilfunktionen haben auch ein anderes Verhalten in Bezug auf das Schlüsselwort this.

 1const greet = (name) => {
 2    return "Hello, " + name;
 3};
 4
 5// When it can be expressed in a single line,
 6// `return` and curly braces can be omitted
 7const greetShort = name => "Hello, " + name;
 8
 9console.log(greet("Charlie")); // Hello, Charlie
10console.log(greetShort("Dave")); // Hello, Dave

Funktionen können in diesem Beispiel als greet und greetShort deklariert werden. Wenn die Funktion einzeilig ist, können die {} (geschweiften Klammern) wie bei greetShort weggelassen werden.

Elemente einer Funktion

Argumente

Werte, die an eine Funktion übergeben werden, werden Argumente genannt. Durch das Festlegen von Argumenten bei der Definition einer Funktion können Sie Werte beim Aufrufen der Funktion übergeben.

1function add(a, b) {
2    return a + b;
3}
4
5console.log(add(2, 3)); // 5

Standardargumente

Sie können einen Standardwert angeben, wenn kein Wert an die Argumente übergeben wird.

1function greet(name = "Guest") {
2    return "Hello, " + name;
3}
4
5console.log(greet()); // Hello, Guest
6console.log(greet("Alice")); // Hello, Alice

In diesem Beispiel wird der Standardwert Guest verwendet, wenn greet() aufgerufen wird.

Rückgabewert

Sie können einen Rückgabewert mit der return-Anweisung aus einer Funktion zurückgeben. Wenn es keine return-Anweisung gibt, gibt die Funktion undefined zurück.

1function greet(name) {
2    console.log('Hello, ' + name + '!');
3}
4function square(num) {
5    return num * num;
6}
7
8console.log(square(4)); // 16
9console.log(greet('Alice')); // undefined

In diesem Beispiel gibt greet, da es keinen Wert zurückgibt, undefined als Rückgabewert zurück.

Anonyme Funktion

Eine Funktion ohne Namen wird als anonyme Funktion bezeichnet. Sie werden häufig als Funktionsausdrücke oder Pfeilfunktionen verwendet.

1const double = function(num) {
2    return num * 2;
3};
4
5console.log(double(5)); // 10

Sofort aufgerufenes Funktionsausdruck (IIFE)

Ein Sofort aufgerufenes Funktionsausdruck (IIFE) ist eine Funktion, die unmittelbar nach ihrer Definition ausgeführt wird. Es wird normalerweise verwendet, um den Geltungsbereich zu steuern.

1/* Example of IIFE: Immediately Invoked Function Expression */
2(function() {
3    console.log("This is an IIFE");
4})(); // This is an IIFE

Es wird sofort nach der Deklaration ausgeführt.

Callback-Funktion

Das Übergeben einer Funktion als Argument an eine andere Funktion zur späteren Ausführung wird als Callback-Funktion bezeichnet. Es wird häufig in der asynchronen Verarbeitung und bei der Ereignisbehandlung verwendet.

1function processData(callback) {
2    let data = "Processed Data";
3    callback(data);
4}
5
6processData(function(result) {
7    console.log(result); // Processed Data
8});

In diesem Beispiel wird eine Funktion, die einen Wert in die Konsole ausgibt, als Callback-Funktion übergeben.

Rekursive Funktion

Das Aufrufen einer Funktion durch sie selbst wird als Rekursion bezeichnet, und eine Funktion, die wiederholende Verarbeitungen damit durchführt, wird als rekursive Funktion bezeichnet. Zum Beispiel kann eine Funktion zur Berechnung einer Fakultät mithilfe von Rekursion wie folgt implementiert werden.

 1function factorial(n) {
 2    if (n === 0) {
 3        return 1;
 4    } else {
 5        return n * factorial(n - 1);
 6    }
 7}
 8
 9console.log(factorial(5));
10// Output : 120
11// (5 * 4 * 3 * 2 * 1 = 120)

In diesem Beispiel wird die Fakultät von 5, also 120, angezeigt.

this-Schlüsselwort

Das in einer Funktion verwendete this gibt an, auf welches Objekt die Funktion verweist. In einer regulären Funktion verweist es auf das aufrufende Objekt, während es in Pfeilfunktionen das this des Bereichs, in dem es definiert wurde, beibehält.

 1const obj = {
 2    name: "Alice",
 3    greet: function() {
 4        console.log(this.name); // Refers to "Alice"
 5    }
 6};
 7
 8obj.greet(); // Alice
 9
10const obj2 = {
11    name: "Bob",
12    greet: () => {
13        // Arrow function refers to the outer scope (undefined here)
14        console.log(this.name);
15    }
16};
17
18obj2.greet(); // undefined

Das greet der Variable obj wird mit dem Schlüsselwort function deklariert. Daher bezieht sich das Schlüsselwort this auf das Objekt der Variable obj. Andererseits wird das greet der Variablen obj2 unter Verwendung einer Pfeilfunktion deklariert. Daher bezieht sich das Schlüsselwort this auf das Objekt im äußeren Gültigkeitsbereich und ist in diesem Beispiel undefined.

Funktionsbereich und Closures

Variablen, die innerhalb einer Funktion definiert sind, können von außerhalb der Funktion nicht zugegriffen werden. Dies wird als Funktionsbereich bezeichnet. Es gibt auch ein Merkmal namens Closure, das den Gültigkeitsbereich zu dem Zeitpunkt beibehält, an dem die Funktion definiert wird.

 1function outer() {
 2    let outerVar = "I am outer!";
 3
 4    function inner() {
 5        console.log(outerVar); // Can access outerVar
 6    }
 7
 8    return inner;
 9}
10
11const innerFunc = outer();
12innerFunc(); // I am outer!

In diesem Beispiel kann die Funktion inner auf die Variable outerVar zugreifen, da sie den Gültigkeitsbereich beibehält, in dem sie definiert wurde.

Zusammenfassung

  • Es gibt verschiedene Möglichkeiten, Funktionen zu definieren, darunter Funktionsdeklarationen, Funktionsausdrücke und Pfeilfunktionen.
  • Funktionen können Argumente entgegennehmen und Werte zurückgeben.
  • Es gibt spezielle Verwendungszwecke wie Callback-Funktionen und rekursive Funktionen.
  • Bei der Handhabung von this ist Vorsicht geboten, da sich Pfeilfunktionen und reguläre Funktionen unterschiedlich verhalten.
  • Closures können verwendet werden, um auf interne Variablen von außerhalb des Gültigkeitsbereichs zuzugreifen.

Funktionen sind eines der wichtigen Konzepte in JavaScript und nutzen seine flexible Struktur.

Sie können den obigen Artikel mit Visual Studio Code auf unserem YouTube-Kanal verfolgen. Bitte schauen Sie sich auch den YouTube-Kanal an.

YouTube Video