Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork3
Arrow functions, the basics#83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Uh oh!
There was an error while loading.Please reload this page.
Merged
Changes fromall commits
Commits
Show all changes
8 commits Select commitHold shift + click to select a range
3685325
1.2.17
otmon76d715ca5
Update article.md
otmon76fabde09
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76f55e75b
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76039be9a
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76db6d3c5
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76fe68184
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76ce535ff
Update 1-js/02-first-steps/17-arrow-functions-basics/article.md
otmon76File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
16 changes: 8 additions & 8 deletions1-js/02-first-steps/17-arrow-functions-basics/1-rewrite-arrow/solution.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,17 @@ | ||
```js run | ||
functionzeptejSe(otázka, ano, ne) { | ||
if (confirm(otázka))ano(); | ||
elsene(); | ||
} | ||
zeptejSe( | ||
"Souhlasíte?", | ||
*!* | ||
() => alert("Souhlasil jste."), | ||
() => alert("Zrušil jste provádění.") | ||
*/!* | ||
); | ||
``` | ||
Vypadá to stručně a čistě, že? |
18 changes: 9 additions & 9 deletions1-js/02-first-steps/17-arrow-functions-basics/1-rewrite-arrow/task.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,17 @@ | ||
#Přepište na šipkové funkce | ||
Přepište funkční výrazy v následujícím kódu na šipkové funkce: | ||
```js run | ||
functionzeptejSe(otázka, ano, ne) { | ||
if (confirm(otázka))ano(); | ||
elsene(); | ||
} | ||
zeptejSe( | ||
"Souhlasíte?", | ||
function() { alert("Souhlasil jste."); }, | ||
function() { alert("Zrušil jste provádění."); } | ||
); | ||
``` |
97 changes: 48 additions & 49 deletions1-js/02-first-steps/17-arrow-functions-basics/article.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,111 +1,110 @@ | ||
# Šipkové funkce (arrow funkce) – základy | ||
Existuje ještě jedna velice jednoduchá a výstižná syntaxe vytváření funkcí, která často bývá lepší než funkční výrazy. | ||
Nazývá se „šipková funkce“, jelikož vypadá takto: | ||
```js | ||
letfunkce = (arg1, arg2, ..., argN) =>výraz; | ||
``` | ||
Tím se vytvoří funkce `funkce`, která přijímá argumenty `arg1..argN`,pak s jejich použitím vyhodnotí `výraz` na pravé straně a vrátí jeho výsledek. | ||
Jinými slovy, je to kratší verze tohoto: | ||
```js | ||
letfunkce = function(arg1, arg2, ..., argN) { | ||
returnvýraz; | ||
}; | ||
``` | ||
Podívejme se na konkrétní příklad: | ||
```js run | ||
letsoučet = (a, b) => a + b; | ||
/*Tato šipková funkce je zkrácenou formou této funkce: | ||
letsoučet = function(a, b) { | ||
return a + b; | ||
}; | ||
*/ | ||
alert(součet(1, 2) ); // 3 | ||
``` | ||
Jak vidíte, `(a, b) => a + b`značí funkci, která má dva parametry`a`a `b`.Když je vykonána, vyhodnotí výraz`a + b`a vrátí jeho výsledek. | ||
-Máme-li pouze jeden parametr, můžeme závorky kolem něj vynechat, čímž se zápis ještě zkrátí. | ||
Příklad: | ||
```js run | ||
*!* | ||
letdvojnásobek = n => n * 2; | ||
//zhruba totéž jako: letdvojnásobek = function(n) { return n * 2 } | ||
*/!* | ||
alert(dvojnásobek(3) ); // 6 | ||
``` | ||
-Nejsou-li žádné parametry, závorky budou prázdné, ale musí být uvedeny: | ||
```js run | ||
letřekniAhoj = () => alert("Ahoj!"); | ||
řekniAhoj(); | ||
``` | ||
Šipkové funkce můžeme používat stejným způsobem jako funkční výrazy. | ||
Například k dynamickému vytvoření funkce: | ||
```js run | ||
letvěk = prompt("Kolik je vám let?", 18); | ||
letuvítání = (věk < 18) ? | ||
() => alert('Ahoj!') : | ||
() => alert("Dobrý den!"); | ||
uvítání(); | ||
``` | ||
Šipkové funkce mohou na první pohled vypadat podivně a nepříliš čitelně, ale to se rychle změní, jakmile si oči na tuto strukturu zvyknou. | ||
Jsou velmi vhodné pro jednoduché jednořádkové akce, kdy se nám prostě nechce psát příliš mnoho slov. | ||
##Víceřádkové šipkové funkce | ||
Šipkové funkce, které jsme doposud viděli, byly velmi jednoduché. Přebíraly argumenty z levé strany`=>`,vyhodnotily s nimi výraz na pravé straně a vrátily jeho hodnotu. | ||
Někdy potřebujeme složitější funkci s více výrazy a příkazy. V takovém případě je můžeme uzavřít do složených závorek. Hlavní rozdíl je v tom, že složené závorky vyžadují uvnitř`return`, aby mohly vrátit hodnotu (stejně jako běžná funkce). | ||
Například takto: | ||
```js run | ||
letsoučet = (a, b) => { //složená závorka uvozuje víceřádkovou funkci | ||
letvýsledek = a + b; | ||
*!* | ||
returnvýsledek; //když používáme složené závorky, musíme výslovně uvést „return“ | ||
*/!* | ||
}; | ||
alert(součet(1, 2) ); // 3 | ||
``` | ||
```smart header="Bude toho víc" | ||
Zde jsme chválili šipkové funkce pro jejich stručnost, ale to ještě není všechno! | ||
Šipkové funkce mají i jiné zajímavé vlastnosti. | ||
Abychom je mohli prostudovat do hloubky, musíme napřed poznat některé další prvky JavaScriptu. K šipkovým funkcím se tedy vrátíme později v kapitole <info:arrow-functions>. | ||
Prozatím už můžeme používat šipkové funkce pro jednořádkové akce a callbacky. | ||
``` | ||
##Shrnutí | ||
Šipkové funkce se hodí pro jednoduché akce, zvláště pro jednořádkové funkce. Dají se napsat dvěma způsoby: | ||
1.Bez složených závorek: `(...args) =>výraz` --na pravé straně je výraz: funkce jej vyhodnotí a vrátí jeho výsledek. Kulaté závorky můžeme vynechat, má-li funkce pouze jeden parametr, např. `n => n*2`. | ||
2.Se složenými závorkami: `(...args) => {tělo }` --složené závorky nám umožňují uvést ve funkci více příkazů, ale aby funkce něco vrátila, musíme výslovně uvést `return`. |
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.