Skip to content

Commit 26ed303

Browse files
authored
Merge pull request #50 from javascript-tutorial/sync-71da17e5
Sync with upstream @ 71da17e
2 parents 64b2554 + f390b07 commit 26ed303

File tree

38 files changed

+177
-45
lines changed

38 files changed

+177
-45
lines changed

1-js/02-first-steps/05-types/article.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,25 @@ Kromě běžných čísel obsahuje JavaScript i tzv. „speciální číselné h
4646
alert( "to není číslo" / 2 ); // NaN, takové dělení je chybné
4747
```
4848

49+
<<<<<<< HEAD
4950
`NaN` je „lepkavé“. Jakákoli operace provedená s `NaN` vrátí opět `NaN`:
5051

5152
```js run
5253
alert( "to není číslo" / 2 + 5 ); // NaN
5354
```
5455

5556
Je-li tedy někde v matematickém výrazu `NaN`, přenese se až do jeho celkového výsledku.
57+
=======
58+
`NaN` is sticky. Any further mathematical operation on `NaN` returns `NaN`:
59+
60+
```js run
61+
alert( NaN + 1 ); // NaN
62+
alert( 3 * NaN ); // NaN
63+
alert( "not a number" / 2 - 1 ); // NaN
64+
```
65+
66+
So, if there's a `NaN` somewhere in a mathematical expression, it propagates to the whole result (there's only one exception to that: `NaN ** 0` is `1`).
67+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
5668

5769
```smart header="Matematické operace jsou bezpečné"
5870
Veškeré matematické výpočty v JavaScriptu jsou „bezpečné“. Můžeme provádět cokoli: dělit nulou, zacházet s řetězci neobsahujícími číslo jako s čísly a podobně.

1-js/02-first-steps/08-operators/article.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ Následuje výtažek z [tabulky priorit](https://developer.mozilla.org/en-US/doc
193193
| Priorita | Název | Znak |
194194
|----------|-------|------|
195195
| ... | ... | ... |
196+
<<<<<<< HEAD
196197
| 17 | unární plus | `+` |
197198
| 17 | unární negace | `-` |
198199
| 16 | umocňování | `**` |
@@ -205,10 +206,28 @@ Následuje výtažek z [tabulky priorit](https://developer.mozilla.org/en-US/doc
205206
| ... | ... | ... |
206207

207208
Jak vidíme, „unární plus“ má prioritu `17`, která je vyšší než priorita `13` „sčítání“ (binární plus). To je důvod, proč se ve výrazu `"+jablka + +pomeranče"` unární plusy vyhodnotí před sčítáním.
209+
=======
210+
| 15 | unary plus | `+` |
211+
| 15 | unary negation | `-` |
212+
| 14 | exponentiation | `**` |
213+
| 13 | multiplication | `*` |
214+
| 13 | division | `/` |
215+
| 12 | addition | `+` |
216+
| 12 | subtraction | `-` |
217+
| ... | ... | ... |
218+
| 2 | assignment | `=` |
219+
| ... | ... | ... |
220+
221+
As we can see, the "unary plus" has a priority of `15` which is higher than the `13` of "addition" (binary plus). That's why, in the expression `"+apples + +oranges"`, unary pluses work before the addition.
222+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
208223
209224
## Přiřazení
210225
226+
<<<<<<< HEAD
211227
Všimněte si, že přiřazení `=` je také operátor. V tabulce priorit je uveden s velmi nízkou prioritou `3`.
228+
=======
229+
Let's note that an assignment `=` is also an operator. It is listed in the precedence table with the very low priority of `2`.
230+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
212231

213232
To je důvod, proč při přiřazení proměnné, např. `x = 2 * 2 + 1`, se nejprve provedou výpočty a až potom se vyhodnotí `=`, které uloží výsledek do `x`.
214233

1-js/02-first-steps/12-nullish-coalescing-operator/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,11 @@ V praxi je nulová výška často platnou hodnotou, takže by neměla být nahra
106106
107107
## Priorita
108108
109+
<<<<<<< HEAD
109110
Priorita operátoru `??` je přibližně stejná jako `||`, jen o něco nižší. Je rovna `5` v [tabulce MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table), zatímco `||` má prioritu `6`.
111+
=======
112+
The precedence of the `??` operator is the same as `||`. They both equal `4` in the [MDN table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table).
113+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
110114
111115
To znamená, že operátor koalescence `??` se stejně jako `||` vyhodnocuje před `=` a `?`, ale až po většině ostatních operací, například `+`, `*`.
112116

1-js/02-first-steps/16-function-expressions/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ function řekniAhoj() {
1212

1313
Existuje i jiná syntaxe pro vytváření funkce, která se nazývá *funkční výraz*.
1414

15+
<<<<<<< HEAD
1516
Ten nám umožňuje vytvořit novou funkci uprostřed libovolného výrazu.
17+
=======
18+
It allows us to create a new function in the middle of any expression.
19+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
1620
1721
Například:
1822

1-js/02-first-steps/17-arrow-functions-basics/article.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ let součet = function(a, b) {
3333
alert( součet(1, 2) ); // 3
3434
```
3535

36+
<<<<<<< HEAD
3637
Jak vidíte, `(a, b) => a + b` znamená funkci, která přijímá dva argumenty pojmenované `a` a `b`. Když je vykonána, vyhodnotí výraz `a + b` a vrátí jeho výsledek.
38+
=======
39+
As you can see, `(a, b) => a + b` means a function that accepts two arguments named `a` and `b`. Upon the execution, it evaluates the expression `a + b` and returns the result.
40+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
3741
3842
- Máme-li pouze jeden argument, můžeme závorky kolem něj vynechat, čímž se zápis ještě zkrátí.
3943

@@ -86,7 +90,11 @@ Například takto:
8690
let součet = (a, b) => { // složená závorka uvozuje víceřádkovou funkci
8791
let výsledek = a + b;
8892
*!*
93+
<<<<<<< HEAD
8994
return výsledek; // když používáme složené závorky, musíme výslovně uvést „return“
95+
=======
96+
return result; // if we use curly braces, then we need an explicit "return"
97+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
9098
*/!*
9199
};
92100

1-js/04-object-basics/04-object-methods/8-chain-calls/_js.view/solution.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ let žebřík = {
99
this.stupeň--;
1010
return this;
1111
},
12+
<<<<<<< HEAD
1213
zobrazStupeň: function() {
1314
alert(this.stupeň);
15+
=======
16+
showStep: function() {
17+
alert(this.step);
18+
return this;
19+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
1420
}
1521
};

1-js/04-object-basics/04-object-methods/8-chain-calls/_js.view/test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ describe('Žebřík', function() {
3232
it('dolů().nahoru().nahoru().nahoru() ', function() {
3333
assert.equal(žebřík.dolů().nahoru().nahoru().nahoru().stupeň, 2);
3434
});
35+
36+
it('showStep() should return this', function() {
37+
assert.equal(ladder.showStep(), ladder);
38+
});
39+
40+
it('up().up().down().showStep().down().showStep()', function () {
41+
assert.equal(ladder.up().up().down().showStep().down().showStep().step, 0)
42+
});
3543

3644
after(function() {
3745
žebřík.stupeň = 0;

1-js/04-object-basics/06-constructor-new/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Konstruktor, operátor „new“
22

3+
<<<<<<< HEAD
34
Obvyklá syntaxe `{...}` nám umožňuje vytvořit jeden objekt. Často však potřebujeme vytvořit mnoho podobných objektů, např. více uživatelů, položek menu a podobně.
5+
=======
6+
The regular `{...}` syntax allows us to create one object. But often we need to create many similar objects, like multiple users or menu items and so on.
7+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
48
59
To můžeme učinit pomocí konstruktorů a operátoru `"new"`.
610

1-js/04-object-basics/07-optional-chaining/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ To je očekávaný výsledek. JavaScript takto funguje. Když `uživatel.adresa`
2525

2626
V mnoha praktických případech bychom však zde raději získali `undefined` místo chyby (což znamená „žádná ulice“).
2727

28+
<<<<<<< HEAD
2829
...A jiný příklad. Při vývoji webů můžeme pomocí speciálního volání metody, např. `document.querySelector('.elem')`, získat objekt, který odpovídá určitému prvku webové stránky. Když na stránce takový prvek není, metoda vrací `null`.
30+
=======
31+
...and another example. In Web development, we can get an object that corresponds to a web page element using a special method call, such as `document.querySelector('.elem')`, and it returns `null` when there's no such element.
32+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
2933
3034
```js run
3135
// document.querySelector('.elem') je null, pokud tam žádný prvek není

1-js/05-data-types/06-iterable/article.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,17 @@ let interval = {
2727

2828
Abychom učinili objekt `interval` iterovatelným (a tím zprovoznili `for..of`), musíme do tohoto objektu přidat metodu nazvanou `Symbol.iterator` (speciální vestavěný symbol právě pro tento účel).
2929

30+
<<<<<<< HEAD
3031
1. Když `for..of` začne, jedenkrát tuto metodu zavolá (nebo ohlásí chybu, není-li nalezena). Metoda musí vracet *iterátor* -- objekt obsahující metodu `next`.
3132
2. Nadále `for..of` pracuje *pouze s tímto vráceným objektem*.
3233
3. Když `for..of` chce další hodnotu, volá na tomto objektu `next()`.
3334
4. Výsledek `next()` musí mít tvar `{done: Boolean, value: cokoli}`, kde `done=true` znamená, že iterace skončila, v opačném případě je další hodnotou `value`.
35+
=======
36+
1. When `for..of` starts, it calls that method once (or errors if not found). The method must return an *iterator* -- an object with the method `next`.
37+
2. Onward, `for..of` works *only with that returned object*.
38+
3. When `for..of` wants the next value, it calls `next()` on that object.
39+
4. The result of `next()` must have the form `{done: Boolean, value: any}`, where `done=true` means that the loop is finished, otherwise `value` is the next value.
40+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
3441
3542
Zde je úplná implementace objektu `interval` s komentáři:
3643

@@ -43,11 +50,19 @@ let interval = {
4350
// 1. volání for..of nejprve zavolá tuto funkci
4451
interval[Symbol.iterator] = function() {
4552

53+
<<<<<<< HEAD
4654
// ...tato funkce vrátí objekt iterátoru:
4755
// 2. Od této chvíle for..of pracuje jen s tímto iterátorem a ptá se ho na další hodnoty
4856
return {
4957
aktuální: this.začátek,
5058
poslední: this.konec,
59+
=======
60+
// ...it returns the iterator object:
61+
// 2. Onward, for..of works only with the iterator object below, asking it for next values
62+
return {
63+
current: this.from,
64+
last: this.to,
65+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
5166

5267
// 3. next() je volána cyklem for..of při každé iteraci
5368
next() {
@@ -269,7 +284,11 @@ for (let znak of str) {
269284
alert(znaky);
270285
```
271286
287+
<<<<<<< HEAD
272288
...Ale je to kratší.
289+
=======
290+
...But it is shorter.
291+
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
273292
274293
Můžeme na ní dokonce postavit metodu `slice`, která bude rozpoznávat surrogate pairy:
275294

0 commit comments

Comments
 (0)