Podstawowy samouczek JavaScript

Podstawy

Wprowadzenie Uruchamianie JavaScript Pierwszy program w JavaScript Analiza kodu programu Dalsze przykłady Pliki ze skryptami Wiele plików Uwaga Buforowanie plików Tryb ścisły Komentarze Zmienne Używanie zmiennych Deklarowanie wielu zmiennych Zmiana wartości zmiennych Wiele let dla jednej zmiennej Operacje matematyczne na liczbach Operacje matematyczne na zmiennych Priorytet operacji matematycznych Równy priorytet Nawiasy grupujące Ułamki Liczby ujemne Plus przed zmiennymi Reszta z dzielenia Potęgowanie Priorytet potęgowania Łańcuchy znaków Dodawanie łańcuchów znaków Długość łańcucha znaków Łańcuchy szablonowe Wieloliniowość Wartości specjalne Wartość undefined Wartość null Wartości true i false Wartość NaN Infinity i -Infinity Konsola Typ danych w konsoli Błędy w konsoli Stałe Automatyczna konwersja typów Konwersja na liczbę Krótka konwersja na liczbę Konwersja niepoprawnych liczb Wydzielanie liczb Konwersja na łańcuch znaków Zastosowanie konwersji na łańcuch znaków Konwersja typu logicznego Konwersja na typ logiczny Znaki łańcucha Niezmienność łańcuchów Ostatni znak łańcucha Łańcuchy z cyframi Odwoływanie się do cyfr liczby Operacje do zmiany zmiennej Operacje skrócone w JavaScript Inkrementacja Typ prefiksowy i postfiksowy Niedokładne obliczenia Funkcja prompt Problem z typami w prompt Wypisywanie do dokumentu Praktyka - znajdowanie błędów Praktyka - operacje Praktyka - formuły

Tablice

Wprowadzenie do tablic Pobieranie elementów Długość tablicy Zmiana elementów Nadpisywanie elementów tablicy Inkrementacja elementów Dodawanie elementów za pomocą kluczy Tablice rzadkie Dodawanie elementów za pomocą push Klucze ze zmiennych Operator delete Praktyka w wyszukiwaniu błędów

Obiekty

Wprowadzenie do obiektów Wyświetlanie całego obiektu Klucze tekstowe obiektów Właściwości obiektów Ograniczenia dotyczące kluczy obiektów Zmiana elementów Dodawanie elementów Nieuporządkowanie obiektów Tablica kluczy obiektu Długość obiektu Klucze ze zmiennych Błąd dostępu do elementu Błąd dostępu do właściwości Właściwości obliczane Operator in Operator delete Typowanie obiektów Tablice jako obiekty Rozróżnianie tablic od obiektów Obiekty i prymitywy Przekazywanie obiektów przez referencję Stałe Podejście programistyczne przez stałe Praktyka w znajdowaniu błędów

Warunki

Konstrukcja if-else Operatory większości i mniejszości Sprawdzanie równości Sprawdzanie nierówności Porównywanie zmiennych Równość ciągów znaków Równość ciągów znaków i liczb Równość według wartości i typu Nierówność według wartości i typu Logiczne I Logiczne LUB Priorytet operatorów logicznych Grupowanie warunków Inwertowanie wyrażeń logicznych Warunki z wartościami logicznymi Porównywanie wartości z typem logicznym Skrócona forma sprawdzania prawdy Skrócona forma sprawdzania fałszu Ogólna skrócona forma sprawdzania Złożone warunki w formie skróconej Opcjonalność konstrukcji else Opcjonalność nawiasów klamrowych Problem opcjonalności nawiasów Konstrukcja else if Zagnieżdżone konstrukcje if-else Konstrukcja switch-case Opcjonalność break Operator trójargumentowy Operacje logiczne Funkcja confirm Zakres widoczności Niuanse zakresu widoczności Sprawdzanie części godziny Sprawdzanie długości ciągów znaków i tablic Sprawdzanie znaków ciągu Sprawdzanie cyfr liczby Sprawdzanie reszty z dzielenia Praktyka wyszukiwania błędów Praktyka

Pętle

Wprowadzenie Pętla for-of Pętla for-in Pętla while Pętla for Pętla for dla tablic Warunki w pętlach Akumulacja sumy liczb Akumulacja sumy elementów Tworzenie ciągów znaków Cyfry liczby Opcjonalność nawiasów klamrowych Problem opcjonalności nawiasów Instrukcja break Instrukcja continue Pętle zagnieżdżone Zakres widoczności Pętle zagnieżdżone i zakres widoczności Wypełnianie tablic Modyfikowanie tablic Wypełnianie obiektów Modyfikowanie obiektów Praca z flagami Wskazówki dotyczące pisania kodu Wskazówki dotyczące debugowania kodu Praktyka - znajdowanie błędów Praktyka

Wielowymiarowość

Tablice wielowymiarowe Tablica trójwymiarowa Tablice dowolne Iteracja po tablicach wielowymiarowych Iteracja przez zwykłą pętlę for Wypełnianie tablic wielowymiarowych Problemy przy wypełnianiu tablic wielowymiarowych Wypełnianie tablic wielowymiarowych po kolei Obiekty wielowymiarowe Iteracja po obiektach wielowymiarowych Struktury wielowymiarowe Iteracja po strukturach wielowymiarowych Tablica obiektów Klucze ze zmiennych Dodawanie elementów do tablic Dodawanie elementów do obiektów

Standardowe metody

Potęgi Funkcje zaokrąglania Ekstrema Losowość Wartości bezwzględne Wielkość liter Wycinanie ciągów Wyszukiwanie w ciągach Zamiana w ciągach Podział ciągów Elementy końcowe Części tablic Wycinanie tablic Wyszukiwanie w tablicach Klucze obiektów Praktyka w wyszukiwaniu błędów

Funkcje użytkownika

Wprowadzenie Parametry funkcji Kilka parametrów Parametry-zmienne Parametry opcjonalne Instrukcja return Sekwencyjne wywoływanie funkcji Delikatne miejsce return Pętla i return Zastosowanie return w pętlach Sposób pracy z return Flagi w funkcjach Operatory logiczne w funkcjach Wskazówki dotyczące funkcji Praktyka wyszukiwania błędów Praktyka na funkcje

Zmienne funkcji

Zmienne globalne Zmienne lokalne Zbieżność nazw zmiennych Modyfikowanie zmiennych globalnych Zmienne globalne i parametry funkcji Zbieżność nazw z parametrami Parametry-obiekty

Typy funkcji

Kod źródłowy funkcji i wynik Funkcja jako zmienna Zapisanie funkcji do innej zmiennej Przypisywanie funkcji do zmiennych Zgodność nazwy funkcji i zmiennej Typy deklaracji Różnica deklaracji funkcji Średnik przy deklarowaniu funkcji Niuanse wyrażeń funkcyjnych Funkcja z nazwą, ale Function Expression Nazwane wyrażenia funkcyjne Jak sprawdzić typ funkcji Wyrażenie po lewej stronie Wyrażenie po prawej stronie Tablica z funkcjami Obiekt z funkcjami Zastosowanie obiektu z funkcjami

Funkcje zagnieżdżone

Przekazywanie funkcji jako parametrów Funkcje nazwane Parametry przekazywanych funkcji Przekazywanie liczby jako parametr Zastosowanie Funkcje wewnętrzne Zakres widoczności funkcji zagnieżdżonych Parametry funkcji zewnętrznej Parametry funkcji zewnętrznej i wewnętrznej Parametry o tej samej nazwie Funkcja zwracająca funkcję Dowolny poziom zagnieżdżenia Parametry zwracanej funkcji Funkcje zwrotne (callback) Niuanse funkcji zwrotnych Funkcje strzałkowe Zastosowanie funkcji strzałkowych synchronizacja z tłumaczeniem

Domknięcia

Dostęp do zmiennych zewnętrznych Środowisko leksykalne funkcji Zastosowanie środowiska leksykalnego Wprowadzenie do domknięć Licznik na domknięciach Niuanse zmiennej lokalnej Niuanse zmiennej globalnej

IIFE

Wywołanie funkcji natychmiastowe Przypisanie funkcji do zmiennej Zastosowanie wywołania funkcji natychmiastowego Nawiasy okrągłe Parametry Wielokrotne wywołania Pułapki Zabezpieczający średnik Domknięcia i IIFE

Rekurencja

Wprowadzenie Przykład z parametrem Suma elementów tablicy przy rekurencji Struktury wielowymiarowe Suma elementów tablicy Manipulacje strukturami

Metody iterujące

Metoda map Metoda forEach Metoda filter Metoda every Metoda some Metoda find tłumaczenie, zadania Metoda reduce tłumaczenie, zadania

Operator spread

Wprowadzenie Bardziej złożone przykłady Ekstremalne wartości tablicy Scalanie tablic Podział ciągów znaków Podział liczb

Operator rest

Operator rest Suma cyfr Tablice na dwuwymiarową Tablice na jedną

Destrukturyzacja

Destrukturyzacja tablic Tablica z funkcji Pomijanie elementów tablicy Nadmiarowe wartości tablicy Reszta tablicy Wartości domyślne dla tablic Funkcje domyślne dla tablic Deklaracja zmiennych dla tablic Destrukturyzacja obiektów Nazwy zmiennych dla obiektów Wartości domyślne dla obiektów Zmienne i wartości domyślne dla obiektów Deklaracja zmiennych dla obiektów Parametry funkcji Destrukturyzacja obiektów parametrów funkcji

Czas

Praca z obiektem Date Formatowanie Zmiana formatu daty Uzyskiwanie dnia tygodnia Wypisywanie daty słownie Ustawianie czasu Format timestamp Różnica między timestamp Różnica obiektów z datami Automatyczna korekta dat Znajdowanie ostatniego dnia miesiąca Określanie roku przestępnego Sprawdzanie poprawności Uzyskiwanie dnia bieżącego roku Dzień następnego lub poprzedniego miesiąca Dzień następnego lub poprzedniego roku Różnica momentów Moment czasu dnia Początek dnia Koniec dnia Cykliczne sprawdzanie momentów czasu Praktyka na uzyskiwanie momentów czasu Porównywanie stringów Porównywanie daty bez roku Trafienie daty w przedział Porównywanie obiektów z datą

Wprowadzenie do DOM

Wprowadzenie Elementy DOM Uzyskiwanie elementów DOM Zaawansowane selektory elementów DOM Przypinanie procedur obsługi zdarzeń Nazwane procedury obsługi zdarzeń Jedna procedura obsługi dla wielu elementów Wiele procedur obsługi jednego zdarzenia Procedury obsługi różnych zdarzeń Tekst elementu Kod HTML elementu Atrybuty tagów jako właściwości Praca z polami tekstowymi Fokus pól tekstowych Atrybuty-wyjątki Łańcuchy metod i właściwości Zalety i wady łańcuchowania Obiekt this Zaleta this Uzyskiwanie grupy elementów Nazwane procedury obsługi w pętli Anonimowe procedury obsługi w pętli Odpinanie procedur obsługi zdarzeń Odpinanie procedur obsługi w pętli Odpinanie anonimowych procedur obsługi Wskazówki dotyczące pisania kodu Praktyka wyszukiwania błędów Praktykum

Atrybuty

Metoda pobierania atrybutów Metoda ustawiania atrybutów Metoda usuwania atrybutów Metoda sprawdzania atrybutów Niestandardowe atrybuty danych Nazwy atrybutów z myślnikami Odwoływanie się do atrybutów przez metody Tablica klas CSS Dodawanie klas CSS Usuwanie klas CSS Sprawdzanie klas CSS Przełączanie klas CSS

Stylizacja

Stylizacja przez atrybut style Stylizacja właściwości z myślnikiem Wyjątek przy stylizacji elementów Stylizacja przez klasy CSS Zaleta stylizacji za pomocą klas CSS Stosowanie stylizacji

Wyszukiwanie

Znajdowanie elementów potomnych Znajdowanie elementów nadrzędnych Wyszukiwanie wszystkich elementów nadrzędnych Wyszukiwanie elementów sąsiadujących Wyszukiwanie elementu po id Wyszukiwanie elementu po nazwie tagu Wyszukiwanie elementu po nazwie klasy Wyszukiwanie wewnątrz elementu

Węzły

Wprowadzenie Iteracja po węzłach pętlą Nazwa węzłów Typ węzła Tekst węzłów

Formularze

Praca z textarea Blokowanie elementów Praca z checkboxami Przełączanie atrybutów bez wartości Praca z przyciskami radio Zdarzenie change Zdarzenie input Metody focus i blur Praktyka w wyszukiwaniu błędów

Listy rozwijane

Praca z listami rozwijanymi Atrybut value w listach rozwijanych Zmiana wybranego elementu listy Numer wybranego elementu listy Pobieranie elementów listy rozwijanej Elementy jako tablica Praca z elementami listy rozwijanej Wybór elementu listy Pobieranie wybranego elementu

Obiekt Event

Podstawy pracy z obiektem Event Współrzędne zdarzenia Typ zdarzenia Element zdarzenia Pobieranie naciśniętych klawiszy Śledzenie klawiszy modyfikatorów Anulowanie działania domyślnego Bąbelkowanie zdarzeń Element docelowy podczas bąbelkowania Zatrzymywanie bąbelkowania zdarzeń Wiele handlerów na elemencie Natychmiastowe zatrzymanie bąbelkowania Zastosowanie zatrzymywania bąbelkowania zdarzeń Przechwytywanie zdarzeń Handlery na nowych elementach Delegowanie zdarzeń Uniwersalne delegowanie zdarzeń

Kontekst

Podstawy pracy z kontekstem Kontekst niepowiązanej funkcji Utrata kontekstu Rozwiązanie problemu z kontekstem Rozwiązanie poprzez zmienną Rozwiązanie poprzez parametr Rozwiązanie poprzez funkcję strzałkową Metoda call Metoda call z parametrami Metoda apply Metoda bind

Timery

Uruchamianie timera Licznik na timerze Zatrzymywanie timera Przyciski uruchamiania Wielokrotne uruchamianie Przyciski zatrzymywania Praca z DOM Timery i utrata kontekstu Praktyka z timerami i DOM Opóźnienie przed wykonaniem Timer z opóźnieniem

Manipulowanie elementami

Tworzenie i wstawianie elementów Podpinanie zdarzeń przy wstawianiu Tworzenie elementów w pętli Podpinanie handlerów w pętli Usuwanie elementów Wstawianie na krawędzi Wstawianie przed Sąsiadujące wstawianie Sąsiadujące wstawianie tagów Klonowanie elementów Sprawdzanie elementów

Praktyka

Tworzenie elementów z tablicy Praktyka tworzenia list ul Tworzenie tabel Sekwencyjne wypełnianie tabel Tworzenie tabeli z tablicy Tworzenie tabeli z tablicy obiektów Dodawanie wierszy i kolumn do tabeli Modyfikacja komórek tabeli Usuwanie nowych elementów Link do usunięcia elementu Tworzenie linków usuwania Edycja pojedynczego elementu Ukrywanie tekstu podczas edycji Edycja w zestawie elementów Usuwanie i edycja Stylizacja elementów Przyciski ukrywania i pokazywania elementu Wiele elementów z przyciskami pokazywania Aktywacja elementów Naprzemienne zmienianie stylów aktywacji Praktyka zmiany elementów

Funkcje i DOM

Funkcje do pracy z elementem DOM Funkcje do pracy z grupą elementów Przekazywanie callbacka do pracy z DOM Przekazywanie numeru porządkowego w callbacku Przekazywanie elementu jako parametr funkcji Przekazywanie grupy elementów jako parametrów Funkcja do tworzenia tabel HTML Zwracanie tabeli z funkcji Funkcja do tworzenia tabeli z tablicy

Moduły poprzez domknięcia

Konflikty zmiennych Moduły poprzez domknięcia Praktyczne zastosowanie Przekazywanie parametrów Przekazywanie elementu nadrzędnego Przekazywanie ustawień modułu Parametry domyślne Eksport zmiennych i funkcji Eksport obiektu w modułach poprzez domknięcia Biblioteki poprzez domknięcia