Skip to content

Commit cb3836c

Browse files
committed
merging all conflicts
2 parents 3e4eaf5 + 3d7abb9 commit cb3836c

File tree

216 files changed

+3856
-1124
lines changed

Some content is hidden

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

216 files changed

+3856
-1124
lines changed

Diff for: .github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

Diff for: 1-js/01-getting-started/1-intro/article.md

+47
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,26 @@ Skirtingi varikliai turi skirtingus slapyvardžius. Pavyzdžiui:
3434
3535
Varikliai yra sudėtingi, bet pagrindai yra paprasti.
3636
37+
<<<<<<< HEAD
3738
1. Variklis (vidinis, jei jis yra naršyklėje) skaito skriptą.
3839
2. Konvertuoja (dar kitaip - kompiliuoja) skriptą į mašininį kodą.
3940
3. Įvykdomas mašininis kodas.
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
4046
4147
Varikliai optimizuoja kodą kiekviename žingsnyje. Jie netgi stebi sukompiliuotą skriptą, kuomet jis vykdomas, bei analizuoja duomenis, kurie jame naudojami, ir pagal tai taiko papildomas optimizacijas. Po viso šio procesio, skriptai yra vykdomi gan greitai.
4248
```
4349

4450
## Ką gali JavaScript padaryti naršyklėje?
4551

52+
<<<<<<< HEAD
4653
Modernus JavaScript yra “saugi” programavimo kalba. Ji neleidžia programuotojui pasiekti atminties arba CPU, nes iš pat pradžių ji buvo sukurta naršyklėms, kurioms to nereikia.
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
4757
4858
JavaScript galimybės stipriai priklauso nuo aplinkos, kurioje ji vykdomas. Pavyzdžiui, [Node.js](https://wikipedia.org/wiki/Node.js) palaiko funkcijas, kurios leidžia Javascript skaityti/rašyti failus, vykdyti kompiuterių tinklų užklausas ir pan.
4959

@@ -59,7 +69,11 @@ Pavyzdžiui, JavaScript naršyklėje gali:
5969

6070
## Ko NEGALI padaryti JavaScript naršyklėje?
6171

72+
<<<<<<< HEAD
6273
JavaScript galimybės naryklėje yra ribojamos dėl vartotojų saugumo. Tikslas - neleisti tinklalapiams pasiekti privačius duomenis arba žaloti vartotojo duomenis.
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
6377
6478
Ribojimų pavyzdžiai:
6579
- JavaScript tinklalapyje negali skaityti/rašyti failus esančius kietajame diske, juos kopijuoti arba vykdyti programas. JavaScript neturi tiesioginės prieigos prie operacinės sistemos funkcijų.
@@ -71,12 +85,26 @@ Ribojimų pavyzdžiai:
7185

7286
Tai vadinama “Same Origin Policy”. Norint tai apeiti, *abu tinklalapiai* turi susitarti dėl keitimosi duomenimis ir juose turi būti specialus JavaScript kodas, kuris tai tvarko. Apie tai kalbėsime vienoje iš pamokų.
7387

88+
<<<<<<< HEAD
7489
Šis ribojimas yra, vėlgi, dėl vartotojų saugmo. Tinklapis `http://anysite.com`, kurį vartotojas atidarė, neturėtų pasiekti kitos naršyklės kortelės su URL `http://gmail.com` ir vogti informaciją.
7590
- JavaScript gali lengvai komunikuoti internetu su serveriu, iš kurio atėjo tinklalapis. Bet tinklalapio galimybės gauti duomenis iš kitų tinklapių/duomenų yra kiek sudėtingesnės. Nors ir įmanoma, tai reikalauja išreikštinio susitarimo (per HTTP antraštes) iš nuotolinio serverio pusės. Vėlgi, dėl saugumo priežasčių.
7691

7792
![](limitations.svg)
7893

7994
Šių ribojimų nėra, jeigu JavaScript vykdomas ne naršyklėje, bet, pavyzdžiui, serveryje. Šiuolaikinės naršyklės taip pat turi papildinius ir plėtinius (ang. *plugins/extensions*), kurie gali prašyti vartotojų leidimo.
95+
=======
96+
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).
97+
- 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).
98+
99+
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.
100+
101+
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.
102+
- 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.
103+
104+
![](limitations.svg)
105+
106+
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.
107+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
80108
81109
## Kuo ypatinga JavaScript?
82110

@@ -90,20 +118,29 @@ JavaScript yra vienintelė naršyklės technologija, kuri turi šiuos tris dalyk
90118

91119
Štai kuo ypatinga JavaScript. Tai yra viena labiausiai išplitusių technologijų, kalbant apie naršyklės sąsajos (ang. *interface*) kūrimą.
92120

121+
<<<<<<< HEAD
93122
Tačiau su JavaScript galima rašyti serverines, mobilias programas (ang. *applications*) ir pan.
123+
=======
124+
That said, JavaScript can be used to create servers, mobile applications, etc.
125+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
94126
95127
## Kalbos “virš” JavaScript
96128

97129
JavaScript sintaksė, be abejo, tinka ne visiem ir ne visada. Skirtingi žmonės nori skirtingų savybių.
98130

99131
Nieko nuostabaus, nes kiekvienas projektas yra skirtingas ir gali turėti labai skirtingų reikalavimų.
100132

133+
<<<<<<< HEAD
101134
Dėl šių priežasčių atsirado daug kalbų, kurios yra konvertuojamos (ang. *transpiling*) į JavaScript ir tik tada vykdomos naršyklėje.
135+
=======
136+
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
137+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
102138
103139
Modernūs įrankiai atlieka konvertaciją labai greitai, tad programuotojai gali programuoti šiomis kalbomis nesigilindami į patį konvertavimo procesą.
104140

105141
Tokių kalbų pavyzdžiai:
106142

143+
<<<<<<< HEAD
107144
- [CoffeeScript](http://coffeescript.org/) yra “syntactic sugar” JavaScript. Trumpesnė sintaksė, su kuria galima rašyti aiškesnį ir konkretesnį kodą. Tai dažniausiai patinka Ruby programuotojams.
108145
- [TypeScript](http://www.typescriptlang.org/) pagrindinis tikslas yra įvesti statinį tipizavimą. Tai palengvina sudėtingų sistemų programavimą. Sukurtas Microsoft.
109146
- [Flow](http://flow.org/) taip pat turi statinį tipizavimą, bet kiek kitokiu būdu. Sukurtas Facebook.
@@ -112,6 +149,16 @@ Tokių kalbų pavyzdžiai:
112149
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) yra moderni, glausta ir saugi programavimo kalba, kuri gali būti skirta naršyklei arba Node
113150

114151
Yra ir daugiau pavyzdžių. Tačiau, netgi jeigu mes naudojame kažkurią iš transpiliuojamų kalbų, suprasti JavaScript yra ne mažiau svarbu.
152+
=======
153+
- [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.
154+
- [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.
155+
- [Flow](https://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
156+
- [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.
157+
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
158+
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.
159+
160+
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.
161+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
115162
116163
## Santrauka
117164

Diff for: 1-js/01-getting-started/2-manuals-specifications/article.md

+23
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11

22
# Vadovai ir specifikacija
33

4+
<<<<<<< HEAD
45
Ši knyga yra *pamokų formato*. Jos tikslas - padėti palaipsniui išmokti kalbą. Tačiau kuomet išmoksti pagrindus, prireikia kitų resursų.
6+
=======
7+
This book is a *tutorial*. It aims to help you gradually learn the language. But once you're familiar with the basics, you'll need other resources.
8+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
59
610
## Specifikacija
711

812
[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) turi pačią nuodugniausią, detalią ir formalią informaciją apie JavaScript. Iš esmės, ši specifikacija apibrėžia pačią kalbą.
913

1014
Tačiau iš šios specifikacijos mokytis iš pat pradžių yra gana sunku, nes informacija labai formali. Jeigu reikia pačios tiksliausios informacijos apie kalbą, specifikacija yra puikus šaltinis. Tačiau vargu, ar to prireiks kiekvieną dieną.
1115

16+
<<<<<<< HEAD
1217
Kasmet yra išleidžiama nauja specifikacijos versija. Tarp šitų išleidimų, galima rasti juodraštį (ang. *draft*) čia <https://tc39.es/ecma262/>.
18+
=======
19+
A new specification version is released every year. Between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
20+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
1321
1422
Galite perskaityti apie naujausias savybes, įskaitant ir tas, kurios yra “beveik standartas” (dar vadinamas “stage 3”) galima rasti <https://github.com/tc39/proposals>.
1523

@@ -20,10 +28,16 @@ Taip pat, jeigu norite programuoti naršyklei, tam yra kita specifikacija, kuri
2028

2129
Vadovą galima rasti <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
2230

31+
<<<<<<< HEAD
2332

2433
Tačiau, dažniausiai geriausia tiesiog ieškoti informacijos internete. Verta tiesiog naudoti “MDN [terminas]” užklausoje, pavyzdžiui <https://google.com/search?q=MDN+parseInt> tam, kad rastumėte informacijos apie `parseInt` funkciją.
2534

2635
## Suderinamumo lentelės
36+
=======
37+
You can find it at <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
38+
39+
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for the `parseInt` function.
40+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
2741
2842
JavaScript yra nuolatos tobulinama kalba, todėl naujos savybės atsiranda reguliariai.
2943

@@ -32,6 +46,15 @@ Pamatyti, ar šias savybes palaiko konkrečios naršyklės ar kiti varikliai, ga
3246
- <http://caniuse.com> - kiekvienos savybės suderinamumo lentelės. T.y. kad pamatyti kurie varikliai palaiko modernias kriptografijos funkcijas: <http://caniuse.com/#feat=cryptography>.
3347
- <https://kangax.github.io/compat-table> - lentelė su kalbos savybe ir varikliais, kurie palaiko/nepalaiko šias savybes.
3448

49+
<<<<<<< HEAD
3550
Visi šie šaltiniai yra naudingi realiame pasaulyje, nes jie turi svarbios informacijos apie kalbą, suderinamumą ir pan.
3651

3752
Prisimink juos tiems atvejams, kai reikės detalios informacijos apie konkrečią savybę.
53+
=======
54+
- <https://caniuse.com> - per-feature tables of support, e.g. to see which engines support modern cryptography functions: <https://caniuse.com/#feat=cryptography>.
55+
- <https://kangax.github.io/compat-table> - a table with language features and engines that support those or don't support.
56+
57+
All these resources are useful in real-life development, as they contain valuable information about language details, their support, etc.
58+
59+
Please remember them (or this page) for the cases when you need in-depth information about a particular feature.
60+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6

Diff for: 1-js/01-getting-started/3-code-editors/article.md

+24
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ Jeigu dar neišsirinkote IDE, pamąstykite apie šiuos:
1414
- [Visual Studio Code](https://code.visualstudio.com/) (daugiaplatformis, nemokamas).
1515
- [WebStorm](http://www.jetbrains.com/webstorm/) (daugiaplatformis, mokamas).
1616

17+
<<<<<<< HEAD
1718
Windows taip pat yra “Visual Studio”, tačiau nereiktų jo maišyt su “Visual Studio Code”. “Visual Studio” yra mokamas ir tik Windows skirtas redaktorius, kuris puikiai derinasi su .NET platforma. Jis taip pat tinka ir JavaScript. yra ir nemokama versija [Visual Studio Community](https://www.visualstudio.com/vs/community/).
19+
=======
20+
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
21+
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
22+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
1823
1924
Dauguma IDE yra mokami, tačiau turi bandomąjį periodą. Jų kaina dažniausiai pakenčiama, atsižvelgiant į programuotojų atlyginimus, tad tiesiog išsirink tokį, kuris atrodo patogiausiai.
2025

@@ -30,14 +35,33 @@ Praktikoj, lengvasvoriai redaktoriai turi daug papildymų (ang. *plugins*), įsk
3035

3136
Šie pasirinkimai verti dėmesio:
3237

38+
<<<<<<< HEAD
3339
- [Sublime Text](http://www.sublimetext.com) (daugiaplatformis, laikinai nemokamas).
3440
- [Notepad++](https://notepad-plus-plus.org/) (Windows, nemokamas).
3541
- [Vim](http://www.vim.org/) ir [Emacs](https://www.gnu.org/software/emacs/) yra labai puikūs, jeigu moki jais naudotis.
3642

3743
## Nesiginčykime
44+
=======
45+
There are many options, for instance:
46+
47+
- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
48+
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
49+
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
50+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
3851
3952
Redaktoriai, kurie buvo paminėti šioje pamokoje yra tie, kuriuos aš ir mano draugai, kuriuos laikau kietais programuotojais, naudojame ilgą laiką ir kurie tenkina mūsų poreikius.
4053

4154
Mūsų dideliame pasaulyje yra kitų puikių redaktorių. Tiesiog pasirink tokį, kuris tau labiausiai patinka.
4255

56+
<<<<<<< HEAD
4357
Redaktoriaus pasirinkimas, kaip ir bet kokio kito įrankio, yra individualus ir priklauso nuo projektų bei kitų, dažnai subjektyvių kriterijų.
58+
=======
59+
There are other great editors in our big world. Please choose the one you like the most.
60+
61+
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
62+
63+
The author's personal opinion:
64+
65+
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
66+
- Otherwise, if it's mostly another language/platform and partially frontend, then consider other editors, such as XCode (Mac), Visual Studio (Windows) or Jetbrains family (Webstorm, PHPStorm, RubyMine etc, depending on the language).
67+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6

Diff for: 1-js/02-first-steps/04-variables/3-uppercast-constant/task.md

+12-1
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,24 @@ const birthday = '18.04.1982';
1212
const age = someCode(birthday);
1313
```
1414

15+
<<<<<<< HEAD
1516
Mes turime konstantą `birthday` data ir amžius `age` yra paskaičiuojame pagal `birthday` tam tikro kodo pagalba (jis čia nepateiktas dėl glaustumo ir dėl to, kad tai nėra svarbu užduočiai).
17+
=======
18+
Here we have a constant `birthday` for the date, and also the `age` constant.
19+
20+
The `age` is calculated from `birthday` using `someCode()`, which means a function call that we didn't explain yet (we will soon!), but the details don't matter here, the point is that `age` is calculated somehow based on the `birthday`.
21+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
1622
1723
Ar būtų gerai naudoti didžiąsias raides `birthday`? O kaip dėl `age`? O galbūt netgi abiems?
1824

1925
```js
26+
<<<<<<< HEAD
2027
const BIRTHDAY = '18.04.1982'; // perrašyti didžiosiomis raidėmis?
2128

2229
const AGE = someCode(BIRTHDAY); // perrašyti didžiosiomis raidėmis?
23-
```
30+
=======
31+
const BIRTHDAY = '18.04.1982'; // make birthday uppercase?
2432

33+
const AGE = someCode(BIRTHDAY); // make age uppercase?
34+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
35+
```

0 commit comments

Comments
 (0)