Funkcje, procesy i wykonywanie w JavaScript
Opanowanie JavaScript wymaga zrozumienia, jak działa kod.
Oto kluczowe pojęcia, które musisz znać.
1. 5 typów funkcji w JavaScript
- Funkcja nazwana (Named Function): Używa konkretnej nazwy. Pomaga to w szybkim debugowaniu błędów.
- Funkcja anonimowa (Anonymous Function): Nie posiada nazwy. Używa się ich do callbacków lub przypisywania do zmiennych.
- Wyrażenie funkcji (Function Expression): Przypisujesz funkcję do zmiennej.
- Funkcja strzałkowa (Arrow Function): Krótka składnia wykorzystująca symbol
=>. Obsługuje słowo kluczowethisw inny sposób. - IIFE: Uruchamia się w momencie zdefiniowania. Pozwala na izolację kodu.
2. Proces vs Wątek
Proces to uruchomiony program. Każdy proces ma własną pamięć. Jeśli Chrome się zawiesi, Spotify nadal będzie działać, ponieważ są to oddzielne procesy.
Wątek (Thread) to mała jednostka wewnątrz procesu. Wątki współdzielą tę samą pamięć. Dzięki temu są szybsze i lżejsze niż procesy.
3. Synchronous vs Asynchronous
JavaScript jest jednowątkowy. Zazwyczaj wykonuje jedno zadanie naraz.
Wykonanie synchroniczne: Zadania są wykonywane w ścisłej kolejności. Następna linia czeka, aż bieżąca linia zostanie ukończona. Może to spowolnić aplikację, jeśli zadanie trwa zbyt długo.
Wykonanie asynchroniczne: Zadania mogą rozpocząć się teraz i zakończyć później. Zapobiega to blokowaniu kodu.
Jak to działa:
- Call Stack obsługuje bieżące zadania.
- Web APIs obsługują długotrwałe zadania, takie jak timery czy zapytania o dane, w tle.
- Callback Queue przechowuje zakończone zadania.
- Event Loop przenosi zadania z kolejki z powrotem na stos, gdy ten jest pusty.
Przykład przepływu asynchronicznego:
- Wypisz "Hi"
- Uruchom timer na 2 sekundy
- Wypisz "End"
- (mijają 2 sekundy) Wypisz "Vicky"
Kod nie czeka na timer. Natychmiast przechodzi do "End".
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi