Program
Bezpieczne i wydajne programowanie w JavaScript
- Specyfikacja/standard języka
- Poprawne i efektywne ładowanie skryptów
- Debugowanie kodu w przeglądarce
- Praca w trybie strict
- Prawidłowe deklarowanie i użycie zmiennych oraz stałych
- Porównywanie i bezpieczna konwersja typów
- Funkcje, domknięcia oraz ich zastosowanie w codziennej pracy
- Kontekst wykonania, zasięg zmiennych i znaczenie referencji this
- Programowanie obiektowe z wykorzystaniem podejścia prototypowego
- Mix-ins jako alternatywa dla klasycznego dziedziczenia
- Obsługa wyjątków
Nowoczesny JavaScript (nowości od ES6/ES2015 w górę)
- Transpilacja kodu i kompatybilność między przeglądarkami
- Arrow functions
- Parametry funkcji (wartości domyślne, spread, varargs)
- Interpolacja tekstu oraz szablony
- OOP - deklaracja klas i ich składników, computed properties, dziedziczenie, elementy statyczne, getters/setters, kontrola dostępu
- Destrukcja (obiekty, tablice, parametry funkcji)
- Nullish coalescing
- Praca z modułami
- Symbole
- Genratory i iteratory
- Kolekcje
- Podsumowanie istotnych nowości i planowanych zmian
Asynchroniczność
- Callbacks
- Promises
- Async/await
- Wprowadzenie do RxJS
Programowanie w stylu funkcyjnym
- Czyste funkcje
- Niezmienność
- Transparentność referencyjna
- Rekurencja
- Funkcje wyższego rzędu
- Pattern matching
- Kompozycja, currying i częściowa aplikacja funkcji
- Memoization
- Algebraic Data Types
- Wprowadzenie do koncepcji Type classes - Functors, Applicatives, Monads, Traversables
- Zastosowanie popularnych typów monad: Maybe, Either, Validation, Reader
- Efekty uboczne i interakcja ze środowiskiem zewnętrznym