Šipkové funkce
JavaScript má ještě jeden, kratší způsob zápisu funkcí: šipkové funkce (anglicky arrow functions). Potkáte je skoro v každém programu v JavaScriptu a v lekci o webových stránkách je budete používat i vy. Tady je stejná funkce zapsaná oběma způsoby. Nejdřív tak, jak to znáte:
function secti(a, b) {
return a + b;
}A jako šipková funkce:
const secti = (a, b) => a + b;Projděme si šipkovou funkci po částech:
const secti =: šipková funkce se píše bez názvu, a tak ji uložíme do proměnné. Funkce pak nese název této proměnné. Funkce je v JavaScriptu hodnota, stejně jako číslo nebo text, a proto ji můžeme uložit do proměnné. Používámeconst, protože v proměnné bude pořád stejná funkce.(a, b): parametry, jako obvykle v závorkách.=>: šipka, tedy rovnítko a za ním znak větší než. Odděluje parametry od těla funkce.a + b: tělo funkce. Když za šipkou nejsou složené závorky, funkce hodnotu za šipkou vrátí sama, bezreturn.
Šipkovou funkci voláte stejně jako každou jinou funkci:
const secti = (a, b) => a + b;
console.log(secti(2, 3));Tento kód vypíše:
5Když funkce potřebuje víc řádků, dejte její tělo do složených závorek, stejně jako u funkce zapsané pomocí function. Se složenými závorkami ale musíte return napsat sami:
const obsahObdelniku = (sirka, vyska) => {
const obsah = sirka * vyska;
return obsah;
};
console.log(obsahObdelniku(4, 3));Tento kód vypíše:
12Všimněte si středníku za zavírací }. Celá funkce je hodnota proměnné vytvořené pomocí const a takový příkaz končí středníkem, stejně jako const cena = 45;.
Pozor na dvě časté chyby:
- Složené závorky bez
return.const secti = (a, b) => { a + b };součet spočítá, ale nevrátí, takžesecti(2, 3)dáundefined. - Volání funkce nad řádkem, který ji vytváří. Dokud se tento řádek neprovede, funkce v proměnné
sectinení, a tak dostanete chybuReferenceError: Cannot access 'secti' before initialization(k proměnné nelze přistupovat dřív, než se vytvoří).
Můžete se setkat i se šipkovou funkcí s jedním parametrem bez závorek, třeba cislo => cislo * 2. Znamená to totéž jako (cislo) => cislo * 2.
Jak psát:
Pokyny
Pod funkcí prumer vytvořte šipkovou funkci dvojnasobek s parametrem cislo, která vrátí cislo * 2. Použijte krátký zápis bez složených závorek.
Přepište funkci prumer na šipkovou funkci s tělem ve složených závorkách. Změní se jen její první řádek, na const prumer = (cisla) => {, a za zavírací } přibude středník. Tělo funkce zůstane, jak je.
Na konci programu vypište dvojnásobek průměrné teploty: výsledek prumer(teploty) předejte funkci dvojnasobek. Program vypíše 42.
Začněte programovat zdarma
9/10