Rozwój w JavaScript - kurs 39 500 rub. z Centrum Szkoleniowego IBS, szkolenie 40 godz., termin 26.11.2023.
Miscellanea / / November 28, 2023
Omawiane tematy:
1. Język JavaScript:
Wersje i implementacje JavaScript;
Obszary zastosowania JavaScript (przeglądarka, serwer, rozwój urządzeń mobilnych);
Typy danych: String, Number, Boolean (pojęcie prawdy i fałszu);
Operatory, pierwszeństwo operatorów;
Deklaracja zmiennych: var, const, let;
Pętle: while, for, for…in, for…of;
Praca z liczbami i ciągami znaków;
Wartości null i niezdefiniowane: różnice i cele zastosowania;
Praca z konsolą;
Wyjątki w JavaScript.
2. JSON, obiekty i tablice:
Format JSON, przykłady;
JSON.parse i stringify;
Obiekty, praca z klasą Object;
Tworzenie obiektów (przy użyciu literału {}, operatora new, metody create);
Dziedziczenie prototypowe, odnośnik __proto__;
Gettery i settery;
Operator in i hasOwnProperty, koncepcja właściwości przeliczalnych;
metoda toString(), wywołująca i przesłaniająca metodę;
metoda valueOf(), wywołująca i przesłaniająca metodę;
Tworzenie tablic: literały i nowa Array();
Automatyczna zmiana długości tablicy;
Pobieranie i ustawianie długości tablicy, obcinanie tablicy;
Korzystanie z metod Join() i concat();
Korzystanie z metody sortowania, ustawienie porządku sortowania tablicy;
Stosowanie metod plasterków i splotów;
Korzystanie z metod push, pop, shift, unshift: tworzenie stosu lub kolejki.
3. Praca z datami i ciągami znaków:
Korzystanie z nowego konstruktora Date();
Zrozumienie komputerowej reprezentacji daty jako czasu w programie Epoch;
Używanie funkcji getTime() i setTime();
Analizowanie ciągów reprezentujących daty;
Opcje tworzenia ciągów znaków w JS: użycie cudzysłowów pojedynczych i podwójnych;
Interpolacja ciągów (ciąg w apostrofach);
Ucieczka ze znaków specjalnych w ciągu;
Łączenie ciągów znaków, konwersja na wielkie i małe litery;
Znajdowanie podciągu przy użyciu funkcji IndexOf() i lastIndexOf();
Wybieranie podciągu za pomocą substring() i substr()
Korzystanie z metod include, endsWith, startWith.
4. Używanie JavaScript w przeglądarce: Model DOM:
Zarządzanie oknem przeglądarki, dokumentem, zdarzeniami i stylami (style CSS);
Obiekt okna i jego zastosowania;
Podłączenie kodu JavaScript do strony HTML;
Kolejność wykonywania skryptów na stronie;
Buforowanie skryptów, serwery CDN, wymuszone przeładowanie JavaScript;
Praca z linkami, łączenie JavaScript z linkami;
Zdarzenie onload i jego zastosowanie;
Ataki XSS na witrynę;
Praca z DOM: korzystanie z okna, dokumentu, childNodes;
Manipulowanie dokumentem z wykorzystaniem DOM: tworzenie, usuwanie, przesuwanie elementów;
Używanie getElementById(), getElementsByTagName(), getElementsByClassName() do wyszukiwania elementów na stronie;
Praca z metodami i właściwościami HTMLDocument i HTMLElement.
5. Praca ze zdarzeniami w przeglądarce:
Koncepcja programowania wydarzeń;
Obsługa zdarzeń i słuchacze;
Łączenie procedur obsługi za pomocą addEventListener();
Właściwości i metody klasy Event;
Propagacja zdarzeń w górę (bulgotanie) i w dół (przechwytywanie);
Zatrzymaj rozprzestrzenianie się;
Wydarzenia okienne;
Zdarzenia myszy i klawiatury, właściwości zdarzeń specjalnych;
Wydarzenia formularzowe;
6. Praca z CSS i zarządzanie stylami:
Standard CSS, podstawowe właściwości CSS;
Style ogólne i style poszczególnych elementów;
Style kaskadowe;
selektory CSS;
Modyfikowanie CSS za pomocą JavaScript;
Wypełnienie: margines, dopełnienie, obramowanie;
Sterowanie widocznością elementów: widoczność i wyświetlanie;
Pozycjonowanie elementów: absolutne, stałe, względne, ustawienie górne i lewe;
Jednostki miary px, pt i inne;
Przepełnienie elementu i kontrola poprzez właściwość przepełnienia;
Zarządzanie warstwami dokumentu: właściwość zIndex;
Animacja, ruch elementów;
Praca z klasami, ustawianie nazwy klasy;
Praca z przejrzystością i przejściami;
metoda querySelectorAll().
7. Praca z modułami w JavaScript, menedżerze pakietów NPM, kreatorze pakietów internetowych:
Powody korzystania z modułów;
Eksport z modułu;
Importuj z modułu;
Reeksport;
Praca z NPM, plik package.json;
folder node_modules, pobieranie pakietów za pomocą NPM;
Globalna i lokalna instalacja pakietów;
Używanie pakietu internetowego do budowania projektu;
Ładowarki CSS i TypeScript;
Konfiguracja webpack.config.js;
Tworzenie pakietów, kompresja;
wtyczki do pakietów internetowych;
Wykorzystanie starych systemów modułowych – CommonJS i AMD;
Korzystanie z CommonsChunkPlugin, wiele punktów wejścia;
Moduły HMR z możliwością wymiany podczas pracy.
8. Klasy i dziedziczenie w JavaScript:
Dziedziczenie prototypów, odniesienie __proto__;
Prototyp obiektu;
Korzystanie z instancji;
Klasa słów kluczowych, tworzenie klas;
Słowo kluczowe super;
Korzystanie z metody Object.sign();
Korzystanie z metody Object.defineProperty();
Gettery i settery;
Operator rozprzestrzeniania do pracy z obiektami i tablicami;
Destrukturyzacja tablicy i obiektu.
9. Programowanie funkcjonalne w JavaScript:
Funkcje jako zmienne;
Argumenty tablicowe;
Klasa funkcji, metody call() i Apply();
Metoda bind(), ustawianie tego i niektórych parametrów za pomocą bind;
Zamknięcia w JavaScript;
Hermetyzowanie wartości za pomocą zamknięć;
Tworzenie funkcji poprzez konstruktor Function: konstruowanie ciągu znaków;
Funkcje strzałkowe, przykłady ich zastosowania;
Funkcjonalna manipulacja tablicami: find, findIndex, filter;
Przykłady wykorzystania map/filter/reduce do przetwarzania danych w tablicy.
10. Niezmienność, testowanie, wzór MVC:
Pojęcie niezmienności, jej zalety;
Zmienne i niezmienne metody zmiany obiektów i tablic;
Koncepcja i zalety Wirtualnego DOM;
Testowanie niezmiennych funkcji przy użyciu Jest;
Zapamiętywanie, jego zalety;
Podstawowe błędy i zalecenia przy stosowaniu programowania funkcyjnego;
wzorzec MVC, tworzenie interfejsu użytkownika;
Przegląd głównych bibliotek do tworzenia interfejsów: Angular, React, Vue.
11. Asynchronia w JavaScript. Obietnice:
Pojęcie i konieczność asynchronii;
Praca z setTimeout, setInterval, clearTimeout;
Funkcje wywołań zwrotnych (callbacki);
Utrata tego podczas pracy z funkcją wywołania zwrotnego. Rozwiązania (przy użyciu funkcji bind, strzałek itp.);
Koncepcja obietnic, zwracanie obietnicy z funkcji asynchronicznej;
Metoda Promise.all() i jej zastosowanie;
składnia async/await, przypadki użycia, ograniczenia;
Obsługa sytuacji awaryjnych: odrzucenie obietnicy, obsługa wyjątków dla wywołań asynchronicznych.
12. Praca z serwerem. Protokół HTTP. Usługi REST:
protokół HTTP;
nagłówki i metody HTTP (GET, POST, PUT, DELETE, inne), transfer danych;
Serwery HTTP (przegląd);
kody odpowiedzi serwera HTTP;
Korzystanie z formularzy w celu przekazania danych;
Przesyłanie danych na serwer za pomocą AJAX;
Architektura REST: zalety i cechy;
Implementacja CRUD (operacje Utwórz/Odczyt/Aktualizuj/Usuń) podczas pracy z REST;
Używanie funkcji fetch() do odbierania i wysyłania danych;
Dokumentowanie usług REST przy użyciu Swaggera;
Koncepcja HATEOAS, zastosowanie;
13. Biblioteka AXIOS. Protokół WebSocket:
Porównanie wysokopoziomowej biblioteki Axios i użycia niskopoziomowej metody fetch();
Żądania GET i POST w Axios;
Używanie async/await z Axios;
Obsługa błędów podczas korzystania z Axios;
Anulowanie żądania za pomocą Axios;
protokół WebSocket;
Przykłady wykorzystania WebSocket, porównanie z HTTP;
animacja HTML;
Notatka
Materiały szkoleniowe prezentowane są w języku angielskim.