MVOP3 WBI
Bc. Matěj Cajthaml ©
Smíchovská střední průmyslová
škola a gymnázium
JavaScript na serveru / v konzolové řádce
V Node.js máme k dispozici vše z našeho známého JS (bez DOMu a spojených věcí) a dokonce věci na více (práce se soubory, ...).
nodepackage.jsonnpm init
npm initpackage.json
npm run compile
npm run run
npm install <jmeno balíčku>node_modules, obsahující dané knihovnypackage.json — bude obsahovat knihovnu a její verzipackage-lock.json, který obsahuje přesnější informace o nainstalovaných knihovnáchSoubor package-lock.json a node_modules nikdy nedáváme na verzovací systém (git).
Každý balíček / knihovna se chová různě. Vždy je potřeba číst dokumentaci.
entolinpmProhledejte internet a nalezněte zajimavé npm balíčky.
process.argv
"node index.js "ahoj tohle je jeden argument" 3 "a tohle treti"
OOP není jediný správný způsob programování.
My se budeme zabírat OOP.
K pochopení ostatních typů programování je potřeba tyto základy znát.
Můžeme mít v objektu funkci?
Jak se taková funkce bude volat?
Třídy jsou tedy takové objekty, ne? Proč tedy třídy používáme?
Třídy nám zaručí jakousi konzistenci dat.
Kód rozdělujeme do více celků, které se lépe zpracovávájí.
Nemusíme opakovat ten samý kód.
K čemu se nám to hodí?
a co kdybychom chtěli něco přidat do prvního řešení?
Tohle fungovat nebude. Proč?
K čemuže nám slouží třídy?
Lze dědit jen z jedné třídy.
Všechny třídy na konci dědí z třídy Object.
Super volá nadřazenou třídu, která může volat její nadřazenou třídu, ...
Co je to třída?
Co je to instance?
Co je to vlastnost?
Co je to metoda?
Co je to konstruktor?
Funguje OOP v prohlížeči?
Proč místo tříd nepoužíváme objekty?
Co jsou to nepovinné parametry?
K čemu slouží dědičnost?
Co je to abstrakce dědičnosti?
Co platí pro konstruktory v dědičnosti?
Co to znamená promise?
Na co na webových stránkách musíme čekat v kódu?
then
Jak si myslíte, že bude implementovaná funkce generateCatName?
Vytvořte funkci, která Vám vrátí promise, která po 1 vteřině vrátí objekt s náhodným jménem kočky, náhodným věkem kočky a náhodnou barvou.
Funkci zavolejte a vypište obsah objektu, který Vám přijde.
Někdy se může stát, že se operace neprovede.
Co se závislostmi Promise stane?
.catch, která zachytí všechny chyby.then po zavoláni .catch se zavolají i
přes chybu.catch až na konec
.then budou volány v přesném pořadí a až
potom (a jen když) bude předchozí funkce úspěšně splněna.then budou zavolány i po tom, co byly
přidány již na vyřešenou promise.all — zavolání všech najednou a najednou získá jejich data.race — zavolání všech najednou, vrátí první
Jaký je rozdíl mezí asynchronním programováním a vícevláknovým programováním?
Již máme vytvořenou funkci s promise na vrácení náhodné kočky.
Nyní pomocí promise udělejte, že se vrátí jedna kočka a po získání kočky se získá druha kočka (bude trvat sekundu) a takto desetkrát.
syntax sugar pro asynchronní funkceasync a awaitasyncawaitawait
Proč bychom potřebovali propojovat soubory?
require — starší způsob, podporován skoro všudeimport — novější způsob, menší podporarequire(path)data.js
require.js
import a frompackage.jsondata.js
import.js
Děkuji za pozornost!