Skip to content

Commit 2235b96

Browse files
authored
Merge pull request #147 from javascript-tutorial/sync-b258d7d5
Sync with upstream @ b258d7d
2 parents 0a16b5c + 3ccdeb1 commit 2235b96

File tree

49 files changed

+2063
-227
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2063
-227
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

1-js/02-first-steps/04-variables/article.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,26 @@ Ve starších skriptech můžete najít i jiné klíčové slovo: `var` namísto
8888
*!*var*/!* zpráva = 'Ahoj';
8989
```
9090

91+
<<<<<<< HEAD
9192
Klíčové slovo `var` znamená *skoro* totéž jako `let`. Rovněž deklaruje proměnnou, ale trochu jiným, „staroškolským“ způsobem.
9293

9394
Mezi `let` a `var` existují drobné rozdíly, ale ty nás zatím nezajímají. Podrobně je probereme v kapitole <info:var>.
95+
=======
96+
The `var` keyword is *almost* the same as `let`. It also declares a variable but in a slightly different, "old-school" way.
97+
98+
There are subtle differences between `let` and `var`, but they do not matter to us yet. We'll cover them in detail in the chapter <info:var>.
99+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
94100
````
95101
96102
## Analogie s reálným životem
97103
98104
Koncept „proměnné“ můžeme snadno pochopit, když si ji představíme jako „krabičku“ na data, na níž je nalepen štítek s unikátním názvem.
99105
106+
<<<<<<< HEAD
100107
Například proměnnou `zpráva` si můžeme představit jako krabičku se štítkem `"zpráva"`, v níž je hodnota `"Ahoj!"`:
108+
=======
109+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
101111
102112
![](variable.svg)
103113
@@ -197,15 +207,24 @@ let moje-jméno; // spojovník '-' není v názvu povolen
197207
Proměnné s názvy `jablko` a `JABLKO` jsou dvě různé proměnné.
198208
```
199209

210+
<<<<<<< HEAD
200211
````smart header="Nelatinská písmena jsou povolena, ale nedoporučují se"
201212
Je dovoleno použít písmena z jakéhokoli jazyka, včetně písmen z kyrilice, čínských znaků a podobně, třeba takto:
213+
=======
214+
````smart header="Non-Latin letters are allowed, but not recommended"
215+
It is possible to use any language, including Cyrillic letters, Chinese logograms and so on, like this:
216+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
202217
203218
```js
204219
let имя = '...';
205220
let 我 = '...';
206221
```
207222
223+
<<<<<<< HEAD
208224
Technicky zde není žádná chyba. Takové názvy jsou povoleny, ale podle mezinárodní konvence se v názvech proměnných používá angličtina. I když píšeme malý skript, může mít před sebou dlouhý život a lidé z jiných zemí si ho možná někdy budou potřebovat přečíst.
225+
=======
226+
Technically, there is no error here. Such names are allowed, but there is an international convention to use English in variable names. Even if we're writing a small script, it may have a long life ahead. People from other countries may need to read it sometime.
227+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
209228
````
210229

211230
````warn header="Rezervované názvy"
@@ -260,11 +279,19 @@ const mojeDatumNarození = '18.04.1982';
260279
mojeDatumNarození = '01.01.2001'; // chyba, nelze změnit konstantu!
261280
```
262281
282+
<<<<<<< HEAD
263283
Když má programátor jistotu, že hodnota proměnné se nikdy nezmění, může ji deklarovat pomocí `const`, aby tuto skutečnost pojistil a všem jasně sdělil.
284+
=======
285+
When a programmer is sure that a variable will never change, they can declare it with `const` to guarantee and communicate that fact to everyone.
286+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
264287
265288
### Konstanty velkými písmeny
266289
290+
<<<<<<< HEAD
267291
Je široce rozšířenou praktikou používat konstanty jako názvy obtížně zapamatovatelných hodnot, které jsou známy ještě před spuštěním programu.
292+
=======
293+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
294+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
268295
269296
Názvy takových konstant se uvádějí velkými písmeny a s podtržítky.
270297
@@ -289,15 +316,23 @@ Výhody:
289316
290317
Kdy bychom měli používat pro konstantu velká písmena a kdy bychom ji měli pojmenovat obvyklým způsobem? Ujasníme si to.
291318
319+
<<<<<<< HEAD
292320
Být „konstanta“ znamená prostě to, že hodnota proměnné se nikdy nezmění. Existují však konstanty, které jsou známy již před spuštěním programu (například hexadecimální hodnota červené barvy), a pak jsou konstanty, které se *vypočítají* až za běhu programu, ale jejich vypočtená hodnota se nikdy nezmění.
321+
=======
322+
Being a "constant" just means that a variable's value never changes. But some constants are known before execution (like a hexadecimal value for red) and some constants are *calculated* in run-time, during the execution, but do not change after their initial assignment.
323+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
293324
294325
Příklad:
295326
296327
```js
297328
const dobaNačítáníStránky = /* doba, kterou trvá načíst webovou stránku */;
298329
```
299330
331+
<<<<<<< HEAD
300332
Hodnota proměnné `dobaNačítáníStránky` není známa dříve, než se stránka načte, proto je pojmenována obvyklým způsobem. Je to však konstanta, protože se po přiřazení již nezmění.
333+
=======
334+
The value of `pageLoadTime` is not known before the page load, so it's named normally. But it's still a constant because it doesn't change after the assignment.
335+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
301336
302337
Jinými slovy, názvy konstant zapsané velkými písmeny se používají jen pro pojmenování „natvrdo uvedených“ hodnot.
303338
@@ -307,18 +342,31 @@ Když už mluvíme o proměnných, je tady jedna velice důležitá věc.
307342
308343
Název proměnné by měl mít jasný a jednoznačný význam a měl by popisovat data, která jsou v proměnné uložena.
309344
345+
<<<<<<< HEAD
310346
Pojmenovávání proměnných je jednou z nejdůležitějších a nejsložitějších dovedností v programování. Rychlý pohled na názvy proměnných nám může prozradit, zda kód psal začátečník nebo zkušený vývojář.
311347
312348
V reálných projektech většinu času nezabere psaní něčeho úplně nového od základů, ale úprava a rozšiřování již existujícího kódu. Když se vrátíme k nějakému kódu poté, co jsme nějakou dobu dělali něco jiného, je mnohem jednodušší najít potřebné informace, když jsou vhodně pojmenovány. Nebo, jinými slovy, když proměnné mají vhodné názvy.
349+
=======
350+
Variable naming is one of the most important and complex skills in programming. A glance at variable names can reveal which code was written by a beginner versus an experienced developer.
351+
352+
In a real project, most of the time is spent modifying and extending an existing code base rather than writing something completely separate from scratch. When we return to some code after doing something else for a while, it's much easier to find information that is well-labelled. Or, in other words, when the variables have good names.
353+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
313354
314355
Než deklarujete proměnnou, dobře si promyslete její název. Bohatě se vám to vyplatí.
315356
316357
Některá pravidla, která je vhodné dodržovat, jsou:
317358
359+
<<<<<<< HEAD
318360
- Používejte názvy čitelné člověkem, například `uživatelskéJméno` nebo `nákupníVozík`.
319361
- Zdržte se zkratek nebo krátkých názvů typu `a`, `b`, `c`, leda že byste opravdu dobře věděli, co děláte.
320362
- Volte názvy co nejpopisnější a nejstručnější. Příklady špatných názvů jsou `data` nebo `hodnota`. Takové názvy nic neříkají. Je vhodné je používat jen tehdy, když je z kontextu kódu naprosto zřejmé, jaká data nebo hodnota se v proměnné nachází.
321363
- Dohodněte se na pojmech se svým týmem a promyslete si je. Jestliže se návštěvník stránky nazývá „uživatel“, pak byste příslušné proměnné měli pojmenovat `aktuálníUživatel` nebo `novýUživatel`, a ne `aktuálníNávštěvník` nebo `novýPánVeMěstě`.
364+
=======
365+
- Use human-readable names like `userName` or `shoppingCart`.
366+
- Stay away from abbreviations or short names like `a`, `b`, and `c`, unless you know what you're doing.
367+
- Make names maximally descriptive and concise. Examples of bad names are `data` and `value`. Such names say nothing. It's only okay to use them if the context of the code makes it exceptionally obvious which data or value the variable is referencing.
368+
- Agree on terms within your team and in your mind. If a site visitor is called a "user" then we should name related variables `currentUser` or `newUser` instead of `currentVisitor` or `newManInTown`.
369+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
322370
323371
Zní to jednoduše? Bezpochyby ano, ale vytvářet popisné a stručné názvy proměnných v praxi jednoduché není.
324372

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,17 @@ const bigInt = 1234567890123456789012345678901234567890n;
9595

9696
Protože čísla typu `BigInt` potřebujeme jen málokdy, nebudeme je tady probírat, ale věnujeme jim zvláštní kapitolu <info:bigint>. Až budete tak velká čísla potřebovat, přečtěte si ji.
9797

98+
<<<<<<< HEAD
9899
```smart header="Otázka kompatibility"
99100
Právě nyní je `BigInt` podporován ve Firefoxu/Chrome/Edge/Safari, ale ne v IE.
100101
```
101102

102103
Nahlédnutím do [*MDN* tabulky kompatibility pro BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) zjistíte, které verze prohlížeče jej podporují.
103104

104105
## Řetězec
106+
=======
107+
## String
108+
>>>>>>> b258d7d5b635c88228f7556e14fbe5e5ca7f736d
105109

106110
Řetězec (anglicky string) v JavaScriptu musí být uzavřen do uvozovek.
107111

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Teams behind JavaScript engines have their own ideas about what to implement fir
77

88
So it's quite common for an engine to implement only part of the standard.
99

10-
A good page to see the current state of support for language features is <https://kangax.github.io/compat-table/es6/> (it's big, we have a lot to study yet).
10+
A good page to see the current state of support for language features is <https://compat-table.github.io/compat-table/es6/> (it's big, we have a lot to study yet).
1111

1212
As programmers, we'd like to use most recent features. The more good stuff - the better!
1313

@@ -73,7 +73,6 @@ JavaScript is a highly dynamic language. Scripts may add/modify any function, ev
7373
7474
Two interesting polyfill libraries are:
7575
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
76-
- [polyfill.io](https://polyfill.io/) service that provides a script with polyfills, depending on the features and user's browser.
7776
7877
7978
## Summary
@@ -85,7 +84,7 @@ Just don't forget to use a transpiler (if using modern syntax or operators) and
8584
For example, later when you're familiar with JavaScript, you can setup a code build system based on [webpack](https://webpack.js.org/) with the [babel-loader](https://github.com/babel/babel-loader) plugin.
8685
8786
Good resources that show the current state of support for various features:
88-
- <https://kangax.github.io/compat-table/es6/> - for pure JavaScript.
87+
- <https://compat-table.github.io/compat-table/es6/> - for pure JavaScript.
8988
- <https://caniuse.com/> - for browser-related functions.
9089
9190
P.S. Google Chrome is usually the most up-to-date with language features, try it if a tutorial demo fails. Most tutorial demos work with any modern browser though.

1-js/04-object-basics/04-object-methods/8-chain-calls/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 2
44

55
# Chaining
66

7-
There's a `ladder` object that allows to go up and down:
7+
There's a `ladder` object that allows you to go up and down:
88

99
```js
1010
let ladder = {
@@ -21,7 +21,7 @@ let ladder = {
2121
};
2222
```
2323

24-
Now, if we need to make several calls in sequence, can do it like this:
24+
Now, if we need to make several calls in sequence, we can do it like this:
2525

2626
```js
2727
ladder.up();
@@ -32,10 +32,10 @@ ladder.down();
3232
ladder.showStep(); // 0
3333
```
3434

35-
Modify the code of `up`, `down` and `showStep` to make the calls chainable, like this:
35+
Modify the code of `up`, `down`, and `showStep` to make the calls chainable, like this:
3636

3737
```js
3838
ladder.up().up().down().showStep().down().showStep(); // shows 1 then 0
3939
```
4040

41-
Such approach is widely used across JavaScript libraries.
41+
Such an approach is widely used across JavaScript libraries.

1-js/04-object-basics/09-object-toprimitive/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ let obj = {
253253
}
254254
};
255255

256-
alert(obj + 2); // 22 ("2" + 2), conversion to primitive returned a string => concatenation
256+
alert(obj + 2); // "22" ("2" + 2), conversion to primitive returned a string => concatenation
257257
```
258258

259259
## Summary

0 commit comments

Comments
 (0)