Základy
Funkce
Funkce je recept: kus kódu se jménem, který napíšeme jednou a spustíme, kolikrát chceme.
Postavíme si malou kalkulačku cen v e-shopu: cena s DPH, sleva a hezký výpis.
Funkce · 1
Recept a jeho použití
Slovo function, jméno, kulaté závorky a tělo ve složených. Tím se recept jen zapíše, ještě se nic nestane.
Spustí se až zavoláním: jméno a závorky pozdrav(). Tady ho voláme dvakrát.
console.log() je taky funkce, jen ji napsal někdo jiný. Proto ty závorky.
Funkce · 2
Parametry: co funkci dáme
Do závorek můžeme funkci předat hodnoty. Uvnitř se jmenují podle parametrů v definici, tady jmeno. Při každém zavolání mají jinou hodnotu.
Funkce · 3
Výsledek: return
Funkce může vrátit výsledek. return ho pošle zpátky na místo, odkud jsme funkci zavolali. Tam ho uložíme do proměnné nebo rovnou použijeme.
Funkce, která jen vypisuje, se nedá dál použít. Funkce, která vrací, ano: s výsledkem jde počítat, porovnávat, zobrazit ho na stránce.
Funkce · 4
Víc parametrů a výchozí hodnota
Parametrů může být víc, oddělí se čárkou. Parametru můžeme dát výchozí hodnotu: použije se, když ho při volání vynecháme.
Zápis
Arrow funkce =>
Kratší zápis: funkci uložíme do konstanty a místo function napíšeme šipku =>. Když má tělo jediný výraz, nemusí mít ani složené závorky ani return.
Oba zápisy dělají totéž. Arrow funkce uvidíte hlavně u krátkých funkcí, které se předávají jiným funkcím, třeba v lekci Pole a cykly.
Skládání
Funkce volají funkce
Malé funkce, z nichž každá dělá jednu věc, se skládají do větších. Funkce cenovka vezme cenu, přidá DPH, zaokrouhlí a vrátí hezký text.
Math.round() zaokrouhlí na celé číslo. Objekt Math má i Math.floor() (dolů), Math.max() nebo Math.random() (náhodné číslo od 0 do 1).
Shrnutí
Napsat jednou, použít mnohokrát
Ano
- krátké funkce, které dělají jednu věc
- jméno se slovesem:
spocitej,zobraz,sDph return, když má funkce něco spočítat- arrow funkce
=>pro krátké funkce
Ne
- kopírovat stejný kód na víc míst
- zapomenout závorky při volání:
pozdravfunkci jen jmenuje,pozdrav()ji spustí