Základní tutoriál JavaScriptu
Základy
Úvod
Spuštění JavaScriptu
První program v JavaScriptu
Analýza kódu programu
Další příklady
Soubory se skripty
Více souborů
Poznámka
Ukládání souborů do mezipaměti
Striktní režim
Komentáře
Proměnné
Používání proměnných
Deklarace více proměnných
Změny hodnot proměnných
Více let pro jednu proměnnou
Matematické operace s čísly
Matematické operace s proměnnými
Priorita matematických operací
Stejná priorita
Závorky pro seskupení
Zlomky
Záporná čísla
Plus před proměnnými
Zbytek po dělení
Umocňování
Priorita umocňování
Řetězce
Sčítání řetězců
Délka řetězce
Šablonové řetězce
Víceřádkovost
Speciální hodnoty
Hodnota undefined
Hodnota null
Hodnoty true a false
Hodnota NaN
Infinity a -Infinity
Konzole
Datový typ v konzoli
Chyby v konzoli
Konstanty
Automatická konverze typů
Převod na číslo
Zkrácený převod na číslo
Převod nekorektních čísel
Extrakce čísel
Převod na řetězec
Aplikace převodu na řetězec
Převod logického typu
Převod na logický typ
Znaky řetězce
Neměnnost řetězců
Poslední znak řetězce
Řetězce s číslicemi
Přístup k číslicím čísla
Operace pro změnu proměnné
Zkrácené operace v JavaScriptu
Inkrementace
Prefixový a postfixový typ
Nepřesné výpočty
Funkce prompt
Problém s typy v prompt
Výstup do dokumentu
Praxe na hledání chyb
Praxe na operace
Praxe na vzorce
Pole
Úvod do polí
Získávání prvků
Délka pole
Změna prvků
Přepsání prvků pole
Inkrementace prvků
Přidávání prvků pomocí klíčů
Řídká pole
Přidávání prvků pomocí push
Klíče z proměnných
Operátor delete
Praxe na hledání chyb
Objekty
Úvod do objektů
Výpis celého objektu
Řetězcové klíče objektů
Vlastnosti objektů
Omezení pro klíče objektů
Změna prvků
Přidávání prvků
Neuspořádanost objektů
Pole klíčů objektu
Délka objektu
Klíče z proměnných
Chyba přístupu k prvku
Chyba přístupu k vlastnosti
Vypočítávané vlastnosti
Operátor in
Operátor delete
Typizace objektů
Pole jako objekty
Rozlišení polí od objektů
Objekty a primitiva
Předávání objektů odkazem
Konstanty
Programovací přístup přes konstanty
Praxe na hledání chyb
Podmínky
Konstrukce if-else
Operátory větší a menší
Kontrola rovnosti
Kontrola nerovnosti
Porovnání proměnných
Rovnost řetězců
Rovnost řetězců a čísel
Rovnost podle hodnoty a typu
Nerovnost podle hodnoty a typu
Logické A
Logické NEBO
Priorita logických operátorů
Seskupování podmínek
Invertování logických výrazů
Podmínky s logickými hodnotami
Porovnání hodnot s logickým typem
Zkrácená forma kontroly pravdivosti
Zkrácená forma kontroly nepravdivosti
Obecná zkrácená forma kontroly
Složité podmínky ve zkrácené formě
Nepovinnost konstrukce else
Nepovinnost složených závorek
Problém nepovinnosti závorek
Konstrukce else if
Vnořené konstrukce if-else
Konstrukce switch-case
Nepovinnost break
Ternární operátor
Logické operace
Funkce confirm
Rozsah platnosti
Nuance rozsahu platnosti
Kontrola částí hodiny
Kontrola délky řetězců a polí
Kontrola znaků řetězce
Kontrola číslic čísla
Kontrola zbytku po dělení
Praxe na hledání chyb
Praxe
Cykly
Úvod
Cyklus for-of
Cyklus for-in
Cyklus while
Cyklus for
Cyklus for pro pole
Podmínky v cyklech
Akumulace součtu čísel
Akumulace součtu prvků
Formování řetězců
Číslice čísla
Nepovinnost složených závorek
Problém nepovinnosti závorek
Příkaz break
Příkaz continue
Vnořené cykly
Rozsah viditelnosti
Vnořené cykly a rozsah viditelnosti
Naplňování polí
Změna polí
Naplňování objektů
Změna objektů
Práce s příznaky
Rady pro psaní kódu
Rady pro ladění kódu
Praxe na hledání chyb
Praxe
Vícerozměrnost
Vícerozměrná pole
Trojrozměrné pole
Libovolná pole
Iterace vícerozměrných polí
Iterace pomocí obyčejného for
Naplňování vícerozměrných polí
Problémy při naplňování vícerozměrných polí
Naplňování vícerozměrných polí v pořadí
Vícerozměrné objekty
Iterace vícerozměrných objektů
Vícerozměrné struktury
Iterace vícerozměrných struktur
Pole objektů
Klíče z proměnných
Přidávání prvků do polí
Přidávání prvků do objektů
Standardní metody
Mocniny
Zaokrouhlovací funkce
Extrémy
Náhodná čísla
Absolutní hodnoty
Velikost písmen
Výřez řetězců
Vyhledávání v řetězcích
Nahrazování v řetězcích
Dělení řetězců
Koncové prvky
Části polí
Výřez polí
Vyhledávání v polích
Klíče objektů
Praxe na hledání chyb
Uživatelské funkce
Úvod
Parametry funkce
Několik parametrů
Parametry-proměnné
Volitelné parametry
Instrukce return
Postupné volání funkcí
Jemné místo return
Cyklus a return
Aplikace return v cyklech
Příprava práce s return
Příznaky ve funkcích
Logické operátory ve funkcích
Rady pro funkce
Praxe na hledání chyb
Praxe na funkce
Proměnné funkcí
Globální proměnné
Lokální proměnné
Shoda názvů proměnných
Změna globálních proměnných
Globální proměnné a parametry funkcí
Shoda názvů s parametry
Parametry-objekty
Typy funkcí
Zdrojový kód funkce a výsledek
Funkce jako proměnná
Zápis funkce do jiné proměnné
Přiřazování funkcí do proměnných
Shoda názvu funkce a proměnné
Typy deklarací
Rozdíl deklarací funkce
Středník při deklaraci funkcí
Nuance funkčních výrazů
Funkce s názvem, ale Function Expression
Pojmenované funkční výrazy
Jak zkontrolovat typ funkce
Výraz vlevo
Výraz vpravo
Pole s funkcemi
Objekt s funkcemi
Aplikace objektu s funkcemi
Vnořené funkce
Předávání funkcí jako parametry
Pojmenované funkce
Parametry předávaných funkcí
Předání čísla jako parametru
Aplikace
Vnitřní funkce
Rozsah platnosti vnořených funkcí
Parametry vnější funkce
Parametry vnější a vnitřní funkce
Stejnojmenné parametry
Funkce vracející funkci
Jakákoli úroveň vnoření
Parametry vracené funkce
Callback funkce
Nuance callbacků
Šipkové funkce
Aplikace šipkových funkcí
synchronizováno s překladem
Uzávěry
Přístup k vnějším proměnným
Lexikální prostředí funkcí
Aplikace lexikálního prostředí
Úvod do uzávěrů
Počítač na uzávěry
Nuance lokální proměnná
Nuance globální proměnná
IIFE
Okamžité volání funkce
Přiřazení funkce do proměnné
Aplikace okamžitého volání funkce
Kulaté závorky
Parametry
Vícenásobná volání
Úskalí
Ochranný středník
Uzávěry a IIFE
Rekurze
Úvod
Příklad s parametrem
Součet prvků pole při rekurzi
Vícerozměrné struktury
Součet prvků pole
Manipulace se strukturami
Metody pro průchod polem
Metoda map
Metoda forEach
Metoda filter
Metoda every
Metoda some
Metoda find
překlad, úlohy
Metoda reduce
překlad, úlohy
Operátor spread
Úvod
Složitější příklady
Extrémní hodnoty pole
Slučování polí
Rozdělení řetězců
Rozdělení čísel
Operátor spread a multidimenzionalita
todo
Operátor rest
Destrukturalizace
Destrukturalizace polí
Pole z funkce
Vynechání prvků pole
Nadbytečné hodnoty pole
Zbytek pole
Výchozí hodnoty pro pole
Funkce jako výchozí hodnoty pro pole
Deklarace proměnných pro pole
Destrukturalizace objektů
Názvy proměnných pro objekty
Výchozí hodnoty pro objekty
Proměnné a výchozí hodnoty pro objekty
Deklarace proměnných pro objekty
Parametry funkcí
Destrukturalizace objektů parametrů funkcí
Výměna hodnot
text
Vícerozměrnost
todo
Čas
Práce s objektem Date
Formátování
Změna formátu data
Získání dne v týdnu
Výpis data slovy
Nastavení času
Formát timestamp
Rozdíl mezi timestamp
Rozdíl objektů s daty
Automatická korekce dat
Nalezení posledního dne měsíce
Určení přestupného roku
Kontrola správnosti
Získání dne aktuálního roku
Den následujícího nebo předchozího měsíce
Den následujícího nebo předchozího roku
Rozdíl momentů
Časový moment dne
Začátek dne
Konec dne
Cyklická kontrola časových momentů
Praxe na získání časových momentů
Porovnávání řetězců
Porovnání data bez roku
Spadnutí data do intervalu
Porovnání objektů s datem
Úvod do DOM
Úvod
DOM elementy
Získávání DOM elementů
Složité selektory DOM elementu
Připojování obslužných rutin
Pojmenované obslužné rutiny
Jedna obslužná rutina k elementům
Obslužné rutiny jedné události
Obslužné rutiny různých událostí
Text elementu
HTML kód elementu
Atributy tagů jako vlastnosti
Práce s textovými poli
Fokus textových polí
Atributy-výjimky
Řetězce metod a vlastností
Výhody a nevýhody řetězců
Objekt this
Výhoda this
Získávání skupiny elementů
Pojmenované obslužné rutiny v cyklu
Anonymní obslužné rutiny v cyklu
Odpojování obslužných rutin událostí
Odpojování obslužných rutin v cyklu
Odpojování anonymních obslužných rutin
Rady pro psaní kódu
Praxe na hledání chyb
Praktikum
Atributy
Metoda pro získání atributů
Metoda pro nastavení atributů
Metoda pro odstranění atributů
Metoda pro kontrolu atributů
Vlastní atributy
Názvy atributů s pomlčkami
Přístup k atributům prostřednictvím metod
Pole CSS tříd
Přidávání CSS tříd
Odstraňování CSS tříd
Kontrola CSS tříd
Přepínání CSS tříd
Stylizace
Stylizace pomocí atributu style
Stylizace vlastností s pomlčkou
Výjimka při stylizaci prvků
Stylizace pomocí CSS tříd
Výhoda stylizace pomocí CSS tříd
Aplikace stylizace
Vyhledávání
Hledání potomků elementů
Hledání rodičů elementů
Vyhledávání všech rodičů elementů
Vyhledávání sousedních elementů
Vyhledávání elementu podle id
Vyhledávání elementu podle názvu tagu
Vyhledávání elementu podle názvu třídy
Vyhledávání uvnitř elementu
Uzly
Formuláře
Práce s textarea
Zakázání prvků
Práce s zaškrtávacími políčky
Střídání atributů bez hodnot
Práce s přepínači
Událost change
Událost input
Metody focus a blur
Praxe na hledání chyb
Rozbalovací seznamy
Práce s rozbalovacími seznamy
Atribut value v rozbalovacích seznamech
Změna vybrané položky seznamu
Číslo vybrané položky seznamu
Získání položek rozbalovacího seznamu
Položky jako pole
Práce s položkami rozbalovacího seznamu
Výběr položky seznamu
Získání vybrané položky
Objekt Event
Základy práce s objektem Event
Souřadnice události
Typ události
Prvek události
Zjištění stisknutých kláves
Sledování modifikačních kláves
Zrušení výchozí akce
Bublání událostí
Cílový prvek při bublání
Zastavení bublání událostí
Více obslužných rutin na prvku
Okamžité zastavení bublání
Použití zastavení bublání událostí
Zachytávání událostí
Obslužné rutiny na nové prvky
Delegování událostí
Univerzální delegování událostí
Kontext
Základy práce s kontextem
Kontext nepřivázané funkce
Ztráta kontextu
Řešení problému s kontextem
Řešení pomocí proměnné
Řešení pomocí parametru
Řešení pomocí šipkové funkce
Metoda call
Metoda call s parametry
Metoda apply
Metoda bind
Časovače
Spuštění časovače
Počítač na časovači
Zastavení časovače
Tlačítka pro spuštění
Vícenásobné spuštění
Tlačítka pro zastavení
Práce s DOM
Časovače a ztráta kontextu
Praxe na časovače a DOM
Zpoždění před provedením
Časovač přes zpoždění
Manipulace s prvky
Vytváření a vkládání prvků
Navěšování událostí při vkládání
Vytváření prvků v cyklu
Navěšování obslužných rutin v cyklu
Odstraňování prvků
Vložení na okraj
Vložení před
Sousední vložení
Sousední vložení tagů
Klonování prvků
Kontrola prvků
Praxe
Vytváření prvků z pole
Praxe na vytváření seznamů ul
Vytváření tabulek
Postupné plnění tabulek
Vytváření tabulky z pole
Vytváření tabulky z pole objektů
Přidávání řádků a sloupců do tabulky
Úprava buněk tabulky
Odstraňování nových prvků
Odkaz na odstranění prvku
Vytváření odkazů na odstranění
Editace jednotlivého prvku
Skrývání textu při editaci
Editace v sadě prvků
Odstraňování a editace
Stylizace prvků
Tlačítka pro skrytí a zobrazení prvku
Mnoho prvků s tlačítky zobrazení
Aktivace prvků
Střídání stylů aktivace
Praxe na změnu prvků
Funkce a DOM
Funkce pro práci s DOM elementem
Funkce pro práci se skupinou elementů
Předání callbacku pro práci s DOM
Předání pořadového čísla v callbacku
Předání elementu jako parametru funkce
Předání skupiny elementů parametry
Funkce pro vytváření HTML tabulek
Návrat tabulky z funkce
Funkce pro vytváření tabulky z pole