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
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
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