< Nazad na kurseve
Napredni Javascript
Nauči objektno orjentisanu paradigmu, module i asinhrono programiranje. Nauči napredne koncepte jezika, strukture podataka i algoritme.
Neophodan uslov za uspešno praćenje kursa je efektivna upotreba Javascripta.
Objektno orijentisani Javascript
- Objektno-orijentisano programiranje
- Modelovanje klase
- Nasleđivanje klasa
- Apstrakcija i neponavljanje koda
- Polimorfizam
- Otvoren/zatvoren princip (otvoren za proširenje, zatvoren za menjanje)
- Čemu služe
constructor
isuper
? - Pristupne
get
iset
metode (geteri i seteri) - Statične metode
- Provera pretka sa
instanceof
- Vežba: napravi likove za igru (klasa Junak i naslednici Vilenjak i Ork)
ES6 moduli
Funkcionalno programiranje
- Naredbe i izrazi
- Imperativno vs. funkcionalno programiranje
- Funkcionalno programiranje
- Funkcije višeg reda
Moć funkcija
- Funkcija kao objekat
- Funkcija kao argument (povratna funkcija)
- Funkcija koja vraća funkciju
- Funkcija koja poziva sebe (rekurzija)
- Čiste i nečiste funkcije
- Višestruko vraćanje vrednosti
- Zatvorenost (closure)
- Samoizvršne anonimne funkcije
- Podrazumevani argumenti
- Streličaste funkcije
Kontekst izvršenja (this
)
- Vrednost
this
i kontekst izvršenja - Pozajmljivanje metoda sa
call
iaply
- Vezivanje konteksta sa
bind
this
i streličaste funkcije- Vežba: proveri
this
unutar obične i streličaste povratne funkcije (addEventListener
isetTimeout
)
Prototipska priroda jezika
- Šta je prototip?
- Konstruktorske funkcije
- Svojstvo prototype
- Prototipski lanac
- Ispitivanje prototipa (
isPrototypeOf
,getPrototypeOf
) - Prototipsko nasleđivanje
- Proširenje ugrađenih objekata
- Vežba: napraviti alias za addEventListener
Asinhrono programiranje
- Asinhrono programiranje
- Pakao povratnih funkcija (callback hell)
- Obećanja
- Observable
- Asinhrone funkcije (
async/await
) - Vežba: izvršenje povratne funkcije po učitanju svih slika
Podaci i strukture
- Uvod u strukture podataka
- Mapa (Map)
- Skup (Set)
- Tipski nizovi (typed arrays)
- Ispitivanje tipa objekta
- Razlika null i undefined
Destrukturiranje
- Destrukturiranje objekata i nizova
- Operator razdvajanja i parametar ostatka (
spread
irest
) - neodređen broj argumenata funkcije (
Math.max(...niz)
) - spajanje nizova razlaganjem (
[...niz, 4, 5, 6]
)
Iteratori i generatori
Propagacija događaja
- Propagacija događaja u Javascriptu
- Propagacija događaja naniže (capturing)
- Propagacija događaja naviše (bubbling)
- Zaustavljanje propagacije događaja