Skip to content

Commit 81de986

Browse files
committed
merging all conflicts
2 parents e44fb23 + d78b01e commit 81de986

File tree

207 files changed

+3957
-630
lines changed

Some content is hidden

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

207 files changed

+3957
-630
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/01-getting-started/1-intro/article.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,26 @@ Termenii de mai sus sunt bine de știut pentru că ei sunt folosiți în articol
3434
3535
Motoarele sunt complicate. Dar bazele sunt ușoare.
3636
37+
<<<<<<< HEAD
3738
1. Motorul (încorporat, dacă este un browser) citește("parsează") script-ul.
3839
2. Apoi convertește("compilează") script-ul în limbajul mașină.
3940
3. Apoi codul mașină rulează, destul de repede.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
4046
4147
Motorul aplică optimizări la fiecare stadiu al procesului. Ba chiar observă script-ul compilat cum rulează, analizează datele care trec prin el și aplică optimizări suplimentare asupra codului mașină bazate pe informațiile strânse.
4248
```
4349

4450
## Ce poate JavaScript-ul din browser să facă?
4551

52+
<<<<<<< HEAD
4653
JavaScript-ul modern este un limbaj de programare "sigur". Nu furnizează acces low-level la memorie sau la CPU, pentru că inițial a fost creat pentru browsere, care nu necesitau acest lucru.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
4757
4858
Capabilitățile depind mult de mediul în se care rulează JavaScript. De exemplu, [Node.JS](https://wikipedia.org/wiki/Node.js) suportă funcții care permit JavaScript-ului să citească/scrie fișiere arbitrare, să realizeze request-uri de rețea, etc.
4959

@@ -59,14 +69,19 @@ De exemplu, JavaScript din browser este capabil să:
5969

6070
## Ce NU poate JavaScript-ul din browser să facă?
6171

72+
<<<<<<< HEAD
6273
Abilitățile JavaScript-ului din browser sunt limitate de dragul siguranței utilizatorului. Scopul este de a preveni o pagină web malițioasă să acceseze informații private sau să corupă datele utilizatorului.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
6377
6478
Exemplele acestor restricții sunt:
6579

6680
- JavaScript-ul de pe o pagină web nu poate citi/scrie fișiere arbitrare pe hard disk, nu le poate copia sau să execute programe. Nu are acces direct la funcțiile sistemului de operare.
6781

6882
Browserele moderne îi permit să lucreze cu fișiere, dar accesul este limitat și furnizat doar dacă utilizatorul realizează anumite acțiuni, cum ar fi "scăparea" unui fișier într-o fereastră de browser sau selectarea lui printr-un tag `<input>`.
6983

84+
<<<<<<< HEAD
7085
Există mijloace prin care se poate interacționa cu camera/microfonul sau alte dispozitive, dar ele necesită permisiunea explicită a utilizatorului. Așadar o pagină pe care este activat JavaScript-ul nu ar putea activa o cameră web în mod viclean, și să privească împrejurimile și să trimită informații către [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
7186
- În general, diferite tab-uri/ferestre nu știu nimic unele despre celelalte. Câteodată acestea știu, de exemplu când o fereastră folosește JavaScript pentru a deschide cealaltă fereastră. Dar chiar și în acest caz, JavaScript nu poate accesa cealaltă fereastră dacă ambele ferestre vin de pe site-uri diferite (de la un domeniu, protocol sau port diferit).
7287

@@ -78,6 +93,19 @@ Exemplele acestor restricții sunt:
7893
![](limitations.svg)
7994

8095
Astfel de limite nu există dacă JavaScript este folosit în afara browser-ului, de exemplu pe un server. Browserele moderne permit de asemenea instalarea plugin-urilor/extensiilor care pot cere extinderea permisiunilor.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
81109
82110
## Ce face JavaScript, unic?
83111

@@ -92,20 +120,29 @@ JavaScript este singura tehnologie browser care combină aceste trei lucruri.
92120

93121
Asta e ceea ce face JavaScript unic. De aceea este cea mai răspândită unealtă pentru crearea de interfețe pentru browser.
94122

123+
<<<<<<< HEAD
95124
Acestea fiind spuse, JavaScript permite de asemenea crearea serverlor, aplicațiilor mobile etc.
125+
=======
126+
That said, JavaScript can be used to create servers, mobile applications, etc.
127+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
96128
97129
## Limbaje "peste" JavaScript
98130

99131
Sintaxa JavaScript-ului nu se potrivește cerințelor fiecăruia. Persoane diferite vor diferite feature-uri.
100132

101133
Acest lucru este de așteptat, pentru că proiectele și cerințele sunt diferite pentru fiecare.
102134

135+
<<<<<<< HEAD
103136
Așa că, recent au apărut o pletoră de limbaje noi, care sunt *transpiled*(convertite) în JavaScript înainte ca ele să ruleze în browser.
137+
=======
138+
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
139+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
104140
105141
Uneltele moderne fac transpilarea foarte rapidă și transparentă, permițând defapt dezvoltatorilor să codeze în alt limbaj și să auto convertească codul în cod "sub capotă"(under the hood).
106142

107143
Exemple de astfel de limbaje:
108144

145+
<<<<<<< HEAD
109146
- [CoffeeScript](http://coffeescript.org/) este un "zahăr sintatic" pentru JavaScript. El introduce sintaxă mai scurtă, permițându-ne să scrim cod mai clar și mai precis. De obicei dezvoltatorii Ruby îl plac.
110147
- [TypeScript](http://www.typescriptlang.org/) este concentrat pe adăugarea de "tipizare strictă de date", pentru a simplifica dezvoltarea și suportul sistemelor complexe. Este dezvoltat de Microsoft.
111148
- [Flow](http://flow.org/) de asemeni adaugă data typing, dar într-un mod diferit. Dezvoltat de Facebook.
@@ -114,6 +151,16 @@ Exemple de astfel de limbaje:
114151
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) este un limbaj de programare modern, concis și sigur care țintește browser-ul sau Node.
115152

116153
Există mai multe. Desigur, chiar dacă folosim unul dintre aceste limbaje, ar trebui de asemenea să știm JavaScript, pentru a înțelege cu adevărat ce facem.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
117164
118165
## Rezumat
119166

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11

22
# Manuale și specificații
33

4+
<<<<<<< HEAD
45
Această carte este un *tutorial*. Are ca obiectiv să te ajute să înveți treptat limbajul. Dar odată ce ești familiarizat cu principiile de bază, vei avea nevoie de alte surse.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
59
610
## Specificații
711

812
[Specificația ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) conține cea mai în profunzime, detaliată și formalizată informație despre JavaScript. Aceasta definește limbajul.
913

1014
Dar fiind atât de formalizată, este grea de înțeles la început. Deci dacă ai nevoie de cea mai de încredere sursă de informație despre detaliile limbajului, specificațiile sunt locul potrivit. Dar nu sunt pentru uzul obișnuit.
1115

16+
<<<<<<< HEAD
1217
O nouă versiune a specificației este lansată în fiecare an. Printre aceste lansări, cea mai recentă schiță a specificației este la <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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
1321
1422
Pentru a citi despre noile caracteristici avansate, incluzând acelea care sunt "aproape standard" (așa-numita "etapă a treia"), vezi propunerile la <https://github.com/tc39/proposals>.
1523

@@ -19,11 +27,17 @@ De asemenea, dacă programezi pentru browser, atunci sunt și alte specificații
1927

2028
- **MDN (Mozilla) JavaScript Reference** este manualul principal cu exemple și alte informații. Este minunat pentru a obține informații mai profunde despre funcții individuale ale limbajului, metode etc.
2129

30+
<<<<<<< HEAD
2231
Poate fi găsit la <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
2332

2433
Cu toate acestea, de cele mai multe ori este mai bine să facem o căutare pe internet. Folosiți doar "MDN [termen]" în query, e.g. <https://google.com/search?q=MDN+parseInt> pentru a căuta funcția `parseInt`.
2534

2635
## Tabele de compatibilitate
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
2741
2842
JavaScipt este un limbaj în dezvoltare, noi caracteristici fiind adăugate regulat.
2943

@@ -32,6 +46,15 @@ Pentru a vedea suportul acestora printre browsere și alte motoare vezi:
3246
- <http://caniuse.com> - tabele pentru suport per-caracteristică, e.g. pentru a vedea ce motoare suportă funcțiile moderne de criptografie: <http://caniuse.com/#feat=cryptography>.
3347
- <https://kangax.github.io/compat-table> - un tabel cu caracteristicile limbajului și motoarele ce le suportă sau nu.
3448

49+
<<<<<<< HEAD
3550
Toate aceste resurse sunt utile pentru dezvoltarea din viața reală, conținând informații valoroase despre detaliile limbajului, suportul acestora etc.
3651

3752
Te rugăm să îți amintești de ele (sau de acestă pagină) pentru cazurile în care ai nevoie de informații mai profunde despre o caracteristică particulară.
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+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ Un IDE încarcă proiectul (pot fi mai multe fișiere), permite navigarea între
1313
Dacă nu ai selectat până acum un IDE, uită-te la următoarele variante:
1414

1515
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
16+
<<<<<<< HEAD
1617
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, plătit).
18+
=======
19+
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
20+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
1721
1822
Pentru Windows există de asemenea un editor "Visual Studio", a nu se confunda cu "Visual Studio Code". "Visual Studio" este un editor doar pentru Windows, plătit dar puternic, foarte potrivit pentru platforma .NET. O versiune gratuită al lui este [Visual Studio Community](https://www.visualstudio.com/vs/community/).
1923

@@ -29,19 +33,31 @@ Diferența majoră dintre un editor de "categorie ușoară" și un "IDE" este c
2933

3034
În practică, editoarele de categorie ușoară pot avea multe plugin-uri, inclusiv analizatoare de sintaxă la nivel de director sau autocompletatoare, așadar nu este o graniță strictă între un editor de categorie ușoară și un IDE.
3135

36+
<<<<<<< HEAD
3237
Sunt multe opțiuni, spre exemplu:
3338

3439
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
3540
- [Notepad++](https://notepad-plus-plus.org/) (Windows, gratuit).
3641
- [Vim](http://www.vim.org/) și [Emacs](https://www.gnu.org/software/emacs/) sunt de asemenea utile dacă știi cum să le folosești.
42+
=======
43+
There are many options, for instance:
44+
45+
- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
46+
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
47+
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
48+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
3749
3850
## Să nu ne certăm
3951

4052
Editoarele din lista de mai sus sunt cele pe care fie eu sau prietenii mei, pe care îi consider dezvoltatori buni, le-am folosit pentru un timp îndelungat și suntem mulțumiți de ele.
4153

4254
Există și alte editoare grozave în lumea asta mare. Te rog alege un editor care îți place cel mai mult.
4355

56+
<<<<<<< HEAD
4457
Alegerea unui editor, ca a oricărui alt tool, este individuală și depinde de proiectele tale, obiceiurile și preferințele personale.
58+
=======
59+
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
60+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
4561
4662
The author's personal opinion:
4763

1-js/01-getting-started/4-devtools/article.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Uneltele de dezvoltare se vor deschide cu tabul Console deschis implicit.
2222

2323
Arată similar cu:
2424

25-
![chrome](chrome.png)
25+
![chrome](chrome.webp)
2626

2727
Aspectul exact al uneltelor de dezvoltare depinde de versiunea de Chrome folosită. Se schimbă din când în când, dar trebuie să fie asemănătoare.
2828

@@ -49,7 +49,11 @@ Aspectul și funcționarea lor sunt oarecum similare. Odată ce ați învățat
4949

5050
Safari (browser pentru Mac, nesuportat pe Windows/Linux) e un pic diferit. Întâi trebuie să activăm meniul de dezvoltare (Develop menu).
5151

52+
<<<<<<< HEAD
5253
Deschideți preferințele (Preferences) și mergeți în secțiunea de setări avansate (Advanced). În partea de jos se află un checkbox.
54+
=======
55+
Open Settings and go to the "Advanced" pane. There's a checkbox at the bottom:
56+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
5357
5458
![safari](safari.png)
5559

-41.1 KB
Binary file not shown.
22.2 KB
Loading
48.3 KB
Loading
-67.8 KB
Binary file not shown.
83 KB
Loading

0 commit comments

Comments
 (0)