JavaScript-Funktionen, Threads und Ausführung
Das Verständnis der JavaScript-Grundlagen hilft Ihnen dabei, besseren Code zu schreiben. Hier ist eine Aufschlüsselung von Funktionen, Prozessen, Threads und Ausführungsstilen.
5 Arten von JavaScript-Funktionen
- Benannte Funktion (Named Function): Eine Funktion mit einem spezifischen Namen. Sie hilft beim Debugging und bei der Wiederverwendung.
- Anonyme Funktion (Anonymous Function): Eine Funktion ohne Namen. Diese werden oft als Callbacks verwendet.
- Funktionsausdruck (Function Expression): Sie weisen einer Variable eine Funktion zu. Sie rufen sie über diesen Variablennamen auf.
- Arrow-Funktion (Arrow Function): Eine Kurzschreibweise unter Verwendung des
=>-Symbols. Sie behandeltthisanders. - IIFE: Eine Funktion, die ausgeführt wird, sobald sie definiert wird. Sie erstellt einen privaten Scope.
Prozess vs. Thread
Ein Prozess ist ein Programm, das auf Ihrem Computer läuft.
- Er hat seinen eigenen Speicher.
- Er hat eine eindeutige ID, die PID genannt wird.
- Wenn ein Prozess abstürzt, laufen die anderen weiter.
- Beispiel: Chrome und Spotify sind separate Prozesse.
Ein Thread ist eine kleine Einheit innerhalb eines Prozesses.
- Threads teilen sich denselben Speicher innerhalb eines Prozesses.
- Sie ermöglichen es einem Programm, viele Dinge gleichzeitig zu tun.
- Beispiel: Chrome verwendet mehrere Threads, um eine Seite zu rendern, während gleichzeitig Ton abgespielt wird.
Synchron vs. Asynchron
JavaScript ist single-threaded. Das bedeutet, dass es immer nur eine Aufgabe gleichzeitig bearbeitet.
Synchronous Execution:
- Aufgaben werden nacheinander ausgeführt.
- Jede Zeile wartet, bis die vorherige Zeile abgeschlossen ist.
- Eine langsame Aufgabe kann verhindern, dass alles andere ausgeführt wird.
Asynchronous Execution:
- Aufgaben können jetzt starten und später abgeschlossen werden.
- Dies blockiert den Rest Ihres Codes nicht.
- Dies geschieht über den Event Loop.
- Der Browser verwendet Web APIs, um Aufgaben wie Timer oder das Abrufen von Daten im Hintergrund zu verarbeiten.
- Sobald eine Hintergrundaufgabe abgeschlossen ist, schiebt der Event Loop sie zurück in den Stack, um sie auszuführen.