Skip to content

Commit fd40fad

Browse files
authored
Update article.md
1 parent c1a734f commit fd40fad

File tree

1 file changed

+6
-53
lines changed

1 file changed

+6
-53
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 6 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,16 @@ Výše uvedené pojmy je dobré si pamatovat, protože se používají ve vývoj
3434
3535
Enginy jsou složité, ale jejich základy jsou jednoduché.
3636
37-
<<<<<<< HEAD
3837
1. Engine (v případě prohlížeče zahrnutý do něj) načte („rozebere“, „parsuje“) skript.
39-
2. Pak přeloží („zkompiluje“) skript do strojového jazyka.
38+
2. Pak přeloží („zkompiluje“) skript do strojového kódu.
4039
3. A pak se strojový kód hezky rychle spustí.
41-
=======
42-
1. The engine (embedded if it's a browser) reads ("parses") the script.
43-
2. Then it converts ("compiles") the script to machine code.
44-
3. And then the machine code runs, pretty fast.
45-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
4640
4741
Při každém kroku procesu engine aplikuje optimalizace. Dokonce sleduje, jak zkompilovaný skript běží, analyzuje data, která jím protékají, a podle těchto znalostí dále optimalizuje strojový kód.
4842
```
4943

5044
## Co může JavaScript v prohlížeči dělat?
5145

52-
<<<<<<< HEAD
5346
Moderní JavaScript je „bezpečný“ programovací jazyk. Neposkytuje přímý přístup k paměti nebo CPU na nejnižší úrovni, protože byl původně vytvořen pro prohlížeče, které jej nepotřebují.
54-
=======
55-
Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it.
56-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
5747

5848
Schopnosti JavaScriptu značně závisejí na prostředí, v němž je spuštěn. Například prostředí [Node.js](https://cs.wikipedia.org/wiki/Node.js) podporuje funkce, které umožňují JavaScriptu svévolně číst a zapisovat do souborů, provádět požadavky na síti a podobně.
5949

@@ -69,43 +59,25 @@ Například JavaScript v prohlížeči může:
6959

7060
## Co NEMŮŽE JavaScript v prohlížeči dělat?
7161

72-
<<<<<<< HEAD
73-
Schopnosti JavaScriptu v prohlížeči jsou omezeny v zájmu bezpečnosti uživatele. Cílem je zabránit zlé webové stránce v přístupu k soukromým informacím nebo v poškození uživatelových dat.
74-
=======
75-
JavaScript's abilities in the browser are limited to protect the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
76-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
62+
Schopnosti JavaScriptu v prohlížeči jsou omezeny, aby byla chráněna bezpečnost uživatele. Cílem je zabránit zlé webové stránce v přístupu k soukromým informacím nebo v poškození uživatelových dat.
7763

7864
Příklady takových omezení:
7965

8066
- JavaScript na webové stránce nesmí svévolně číst a zapisovat do souborů na pevném disku, kopírovat je nebo spouštět programy. Nemá přímý přístup k funkcím operačního systému.
8167

8268
Moderní prohlížeče umožňují pracovat se soubory, ale přístup je omezen a je poskytován jen tehdy, když uživatel provede určitou akci, např. „přetažení“ souboru do okna prohlížeče nebo jeho výběr pomocí tagu `<input>`.
8369

84-
<<<<<<< HEAD
8570
Existují způsoby, jak komunikovat s kamerou, mikrofonem nebo jinými zařízeními, ale ty vyžadují výslovné svolení uživatele. Stránka s povoleným JavaScriptem tedy nemůže bez vědomí uživatele zapnout webovou kameru, nasnímat okolí a nahrávku poslat do [NSA](https://cs.wikipedia.org/wiki/Národní_bezpečnostní_agentura).
8671
- Různé záložky a okna o sobě navzájem obvykle nevědí. Někdy ano, například tehdy, když jedno okno používá JavaScript k otevření druhého. Ale ani v tomto případě JavaScript z jedné stránky nemůže přistupovat k jiné, pokud pocházejí z různých webových sídel (z jiné domény, protokolu nebo portu).
8772

88-
Tento postup se nazývá „politika stejného původu“. Je možné ji obejít tak, že *obě stránky* souhlasí s výměnou dat a obsahují speciální JavaScriptový kód, který to umožňuje. V tomto tutoriálu to budeme probírat.
73+
Tento postup se nazývá „politika stejného původu“. Je možné ji obejít tak, že *obě stránky* musí souhlasit s výměnou dat a musí obsahovat speciální JavaScriptový kód, který to umožňuje. V tomto tutoriálu to budeme probírat.
8974

90-
Toto omezení je zde opět pro bezpečnost uživatele. Stránka z `http://anysite.com`, kterou uživatel otevřel, nesmí mít možnost přistupovat k jiné záložce prohlížeče s URL `http://gmail.com` a krást odtamtud informace.
75+
Toto omezení je zde opět pro bezpečnost uživatele. Stránka z `http://anysite.com`, kterou uživatel otevřel, nesmí mít možnost přistupovat k jiné záložce prohlížeče s URL například `http://gmail.com` a krást odtamtud informace.
9176
- JavaScript může jednoduše komunikovat po síti se serverem, z něhož přišla aktuální stránka, ale jeho schopnost získávat data z jiných sídel/domén je značně omezená. Přestože je to možné, vyžaduje to výslovný souhlas (uvedený v HTTP hlavičce) vzdálené strany. I to je bezpečnostní omezení.
9277

9378
![](limitations.svg)
9479

9580
Jestliže použijete JavaScript mimo prohlížeč, např. na serveru, tato omezení neplatí. Moderní prohlížeče navíc umožňují používat pluginy nebo rozšíření, které mohou uživatele požádat o další povolení.
96-
=======
97-
There are ways to interact with the camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
98-
- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other page if they come from different sites (from a different domain, protocol or port).
99-
100-
This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and must contain special JavaScript code that handles it. We'll cover that in the tutorial.
101-
102-
This limitation is, again, for the user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com`, for example, and steal information from there.
103-
- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.
104-
105-
![](limitations.svg)
106-
107-
Such limitations do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugins/extensions which may ask for extended permissions.
108-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
10981

11082
## V čem je JavaScript unikátní?
11183

@@ -120,47 +92,28 @@ JavaScript je jediná prohlížečová technologie, která má všechny tyto tř
12092

12193
To vše činí JavaScript unikátním. To vše je důvodem, proč je dnes nejrozšířenějším nástrojem pro vytváření prohlížečových rozhraní.
12294

123-
<<<<<<< HEAD
124-
Při tom všem však JavaScript umožňuje vytvářet i servery, mobilní aplikace a podobně.
125-
=======
126-
That said, JavaScript can be used to create servers, mobile applications, etc.
127-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
95+
Při tom všem však lze JavaScript použít i k vytváření serverů, mobilních aplikací a podobně.
12896

12997
## Jazyky „nad“ JavaScriptem
13098

13199
Syntaxe JavaScriptu samozřejmě neuspokojí každého, neboť různí lidé chtějí různé vlastnosti.
132100

133101
To se dá očekávat, jelikož každý má jiné požadavky a pracuje na jiných projektech.
134102

135-
<<<<<<< HEAD
136103
Proto se začala objevovat spousta nových jazyků, které jsou před spuštěním v prohlížeči *transpilovány* (překládány) do JavaScriptu.
137-
=======
138-
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
139-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
140104

141105
Moderní nástroje provádějí transpilaci velmi rychle a čistě. V podstatě umožňují vývojářům programovat v jiném jazyce a automaticky jej převádět do JavaScriptu.
142106

143107
Příklady takových jazyků:
144108

145-
<<<<<<< HEAD
146109
- [CoffeeScript](https://coffeescript.org/) je „syntaktický cukr“ pro JavaScript, který zavádí kratší syntaxi a tím nám umožňuje psát čistší a přesnější kód. Obvykle jej mají v oblibě vývojáři, kteří používají jazyk Ruby.
147110
- [TypeScript](https://www.typescriptlang.org/) se soustředí na přidání „striktního, silně typovaného systému“, aby zjednodušil vývoj a podporu složitých systémů. Vyvinula jej firma Microsoft.
148111
- [Flow](https://flow.org/) rovněž přidává typovací systém, ale jiným způsobem. Vyvinul jej Facebook.
149112
- [Dart](https://www.dartlang.org/) je samostatný jazyk se svým vlastním enginem, který běží v prostředích mimo prohlížeč (např. v mobilních aplikacích), ale i ten může být transpilován do JavaScriptu. Vyvinut firmou Google.
150113
- [Brython](https://brython.info/) je transpiler Pythonu do JavaScriptu, který umožňuje psát aplikace v čistém Pythonu bez JavaScriptu.
151114
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) je moderní, stručný a bezpečný programovací jazyk, jehož cílem může být prohlížeč nebo Node.
152115

153-
Jsou i další. Samozřejmě i když používáme některý z transpilovaných jazyků, měli bychom znát i JavaScript, abychom skutečně porozuměli tomu, co se děje.
154-
=======
155-
- [CoffeeScript](https://coffeescript.org/) is "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
156-
- [TypeScript](https://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
157-
- [Flow](https://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
158-
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
159-
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
160-
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.
161-
162-
There are more. Of course, even if we use one of these transpiled languages, we should also know JavaScript to really understand what we're doing.
163-
>>>>>>> 1edb0a38330b54d2e1916f5193fc043e6fbbea78
116+
Jsou i další. Samozřejmě i když používáme některý z těchto transpilovaných jazyků, měli bychom znát i JavaScript, abychom skutečně porozuměli tomu, co se děje.
164117

165118
## Shrnutí
166119

0 commit comments

Comments
 (0)