You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/1-intro/article.md
+17-15Lines changed: 17 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ Să vedem ce e atât de special la JavaScript, ce putem realiza cu el și ce alt
4
4
5
5
## Ce este JavaScript?
6
6
7
-
*JavaScript* a fost creat inițial pentru *"a da viață paginilor"*.
7
+
*JavaScript* a fost creat inițial pentru "a da viață paginilor".
8
8
9
9
În acest limbaj programele sunt numite *script-uri*(scripts). Acestea pot fi scrise direct în HTML și executate în mod automat pe măsură ce pagina se încarcă.
10
10
@@ -13,7 +13,7 @@ Script-urile sunt furnizate și executate ca și text simplu. Ele nu au nevoie d
13
13
În ceea ce privește acest aspect, JavaScript este foarte diferit față de un alt limbaj cu nume asemănător, [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
14
14
15
15
```smart header="Why <u>Java</u>Script?"
16
-
Când JavaScript a fost creat, inițial avea un alt nume: "LiveScript". Dar la acel moment limbajul Java era foarte popular, așa s-a decis că poziționarea unui nou limbaj ca și "frate mai mic" al lui Java, va ajuta.
16
+
Când JavaScript a fost creat, inițial avea un alt nume: "LiveScript". Dar Java era foarte popular la acel moment, așa s-a decis că poziționarea unui nou limbaj ca și "frate mai mic" al lui Java, va ajuta.
17
17
18
18
Dar cum acesta a evoluat, JavaScript a devenit un limbaj complet independent, cu propriile specificații, numite [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), iar acum nu mai are nici o legătură cu Java.
19
19
```
@@ -26,9 +26,9 @@ Diferite motoare au diferite "nume de cod", spre exemplu:
26
26
27
27
-[V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- în Chrome și Opera.
28
28
-[SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- în Firefox.
29
-
- ...Mai există și alte nume de cod precum "Trident" și "Chakra" pentru diferite versiuni de IE, "ChakraCore" pentru Microsoft Edge, "Nitro" și "SquirrelFish" pentru Safari, etc.
29
+
- ...Mai există și alte nume de cod precum "Chakra" pentru IE, "JavaScriptCore", "Nitro" și "SquirrelFish" pentru Safari, etc.
30
30
31
-
Termenii de mai sus sunt bine de știut, pentru că ei sunt folosiți în articole ale dezvoltatorilor, pe internet. De exemplu dacă "o caracteristică(feature) X este suportată de către V8", atunci probabil că merge și în Chromeși în Opera.
31
+
Termenii de mai sus sunt bine de știut pentru că ei sunt folosiți în articole ale dezvoltatorilor de pe internet. Va trebui să-i și folosim. Spre exemplu, dacă "o caracteristică(feature) X este suportată de către V8", atunci probabil că merge și în Chrome, Opera și Edge.
32
32
33
33
```smart header="How do engines work?"
34
34
@@ -38,7 +38,7 @@ Motoarele sunt complicate. Dar bazele sunt ușoare.
38
38
2. Apoi convertește("compilează") script-ul în limbajul mașină.
39
39
3. Apoi codul mașină rulează, destul de repede.
40
40
41
-
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 asupra codului mașină, bazate pe informațiile strânse. La sfârșit script-urile rulează destul de repede.
41
+
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.
42
42
```
43
43
44
44
## Ce poate JavaScript-ul din browser să facă?
@@ -57,13 +57,13 @@ De exemplu, JavaScript din browser este capabil să:
57
57
- Preia și să seteze cookie-uri, pună întrebări vizitatorului, arate mesaje.
58
58
- Să-și amintească date pe partea de client("local storage").
59
59
60
-
## Ce nu poate JavaScript-ul din browser să facă?
60
+
## Ce NU poate JavaScript-ul din browser să facă?
61
61
62
-
Abilitățile JavaScript-ului din browser sunt limitate pentru siguranța utilizatorului. Scopul este acela de a preveni o pagină web malițioasă să acceseze informații private sau să corupă datele utilizatorului.
62
+
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.
63
63
64
64
Exemplele acestor restricții sunt:
65
65
66
-
- JavaScript, 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.
66
+
- 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.
67
67
68
68
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>`.
69
69
@@ -86,30 +86,32 @@ Sunt cel puțin *trei* lucruri imporante în legătură cu JavaScript:
86
86
```compare
87
87
+ Integrare completă cu HTML/CSS.
88
88
+ Lucrurile simple sunt făcute simplu.
89
-
+ Este suportat de către toate browserele majore și este activat în mod implicit.
89
+
+ Este suportat de toate browserele majore și activat în mod implicit.
90
90
```
91
-
JavaScript este singura tehnologie browser care combină aceste 3 lucruri.
91
+
JavaScript este singura tehnologie browser care combină aceste trei lucruri.
92
92
93
93
Asta e ceea ce face JavaScript unic. De aceea este cea mai răspândită unealtă pentru crearea de interfețe pentru browser.
94
94
95
-
Acestea fiind zise JavaScript permite de asemenea crearea serverlor, aplicațiilor mobile etc.
95
+
Acestea fiind spuse, JavaScript permite de asemenea crearea serverlor, aplicațiilor mobile etc.
96
96
97
97
## Limbaje "peste" JavaScript
98
98
99
99
Sintaxa JavaScript-ului nu se potrivește cerințelor fiecăruia. Persoane diferite vor diferite feature-uri.
100
100
101
101
Acest lucru este de așteptat, pentru că proiectele și cerințele sunt diferite pentru fiecare.
102
102
103
-
Așa că recent a apărut o pletoră de limbaje noi, care sunt *transpilate*(convertite) în JavaScript, înainte ca ele să ruleze în browser.
103
+
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.
104
104
105
105
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).
106
106
107
107
Exemple de astfel de limbaje:
108
108
109
-
-[CoffeeScript](http://coffeescript.org/) este un "zahăr sintactic" pentru JavaScript, el introduce sintaxă mai scurtă, permițând scrierea de cod mai clar și mai precis. De obicei dezvoltatorii Ruby îl plac.
109
+
-[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.
110
110
-[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.
111
-
-[Flow](http://flow.org/) adaugă tipizarea datelor, dar într-un mod diferit. Dezvoltate de Facebook.
112
-
-[Dart](https://www.dartlang.org/) este un limbaj standalone care are propriul său motor care rulează în medii non-browser(precum aplicațiile mobile). A fost oferit inițial de către Google ca și un înlocuitor pentru JavaScript, dar de acum browserele necesită ca acesta să fie transpilat în JavaScript la fel ca cele de mai sus.
111
+
-[Flow](http://flow.org/) de asemeni adaugă data typing, dar într-un mod diferit. Dezvoltat de Facebook.
112
+
-[Dart](https://www.dartlang.org/) este un limbaj standalone care are propriul său motor care rulează în medii non-browser(precum aplicațiile mobile), dar deasemeni poate fi transpiled în JavaScript. Dezvoltat de Google.
113
+
-[Brython](https://brython.info/) este un transpiler Python în JavaScript care permite scrierea aplicațiilor în Python pur fără Javascript.
114
+
-[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.
113
115
114
116
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.
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/2-manuals-specifications/article.md
+5-9Lines changed: 5 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,27 +5,23 @@ Această carte este un *tutorial*. Are ca obiectiv să te ajute să înveți tre
5
5
6
6
## Specificații
7
7
8
-
**Specificația ECMA-262** conține cea mai în profunzime, detaliată și formalizată informație despre JavaScript. Aceasta definește limbajul.
8
+
[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.
9
9
10
10
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.
11
11
12
-
Ultima schiță este la <https://tc39.es/ecma262/>.
12
+
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/>.
13
13
14
14
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>.
15
15
16
16
De asemenea, dacă programezi pentru browser, atunci sunt și alte specificații care sunt abordate în [partea a doua](info:browser-environment) a tutorialului.
17
17
18
18
## Manuale
19
19
20
-
-**MDN (Mozilla) JavaScript Reference** este un manual cu exemple și alte informații. Este bun pentru a obține informații mult mai profunde despre funcții individuale ale limbajului, metode etc.
20
+
-**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.
21
21
22
22
Poate fi găsit la <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
23
-
24
-
Deși, adeseori cel mai bine este să cauți pe internet. Doar folosește "MDN [term]" în query, e.g. <https://google.com/search?q=MDN+parseInt> pentru a căuta funcția `parseInt`.
25
-
26
-
-**MSDN** – manual de la Microsoft cu o multitudine de informații, inclusiv JavaScript (adeseori menționat ca JScript). Dacă cineva are nevoie de ceva specific pentru Internet Explorer, cel mai bine este să vadă: <http://msdn.microsoft.com/>.
27
23
28
-
De asemenea, putem căuta pe internet fraze de genul "RegExp MSDN" or "RegExp MSDN jscript".
24
+
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`.
29
25
30
26
## Tabele de compatibilitate
31
27
@@ -36,6 +32,6 @@ Pentru a vedea suportul acestora printre browsere și alte motoare vezi:
36
32
-<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>.
37
33
-<https://kangax.github.io/compat-table> - un tabel cu caracteristicile limbajului și motoarele ce le suportă sau nu.
38
34
39
-
Toate aceste resurse sunt utile de în dezvoltarea din viața reală, conținând informații valoroase despre detaliile limbajului, suportul acestora etc.
35
+
Toate aceste resurse sunt utile pentru dezvoltarea din viața reală, conținând informații valoroase despre detaliile limbajului, suportul acestora etc.
40
36
41
37
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ă.
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/).
19
19
@@ -23,15 +23,14 @@ Multe IDE-uri sunt plătite dar au o perioadă de încercare. Costul lor este î
23
23
24
24
"Editoarele de categorie ușoară" nu sunt la fel de puternice precum IDE-urile, dar sunt rapide, elegante și simple.
25
25
26
-
Sunt de obicei folosite pentru a deschide și edita un fișier, instant.
26
+
Ele sunt în principal folosite pentru a deschide și edita un fișier, instant.
27
27
28
28
Diferența majoră dintre un editor de "categorie ușoară" și un "IDE" este că un IDE funcționează la un nivel de proiect, așa că acesta încarcă mult mai multe date încă de la început, analizează structura proiectului dacă este necesar, ș.a.m.d. Un editor de categorie ușoară este mult mai rapid dacă avem nevoie doar de un fișier.
29
29
30
30
Î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.
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.
42
41
43
-
Există și alte editoare grozave în lume. Te rog alege un editor care îți place cel mai mult.
42
+
Există și alte editoare grozave în lumea asta mare. Te rog alege un editor care îți place cel mai mult.
44
43
45
44
Alegerea unui editor, ca a oricărui alt tool, este individuală și depinde de proiectele tale, obiceiurile și preferințele personale.
45
+
46
+
The author's personal opinion:
47
+
48
+
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
49
+
- 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).
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/4-devtools/article.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,10 +29,15 @@ Aspectul exact al uneltelor de dezvoltare depinde de versiunea de Chrome folosit
29
29
- Aici vedem mesajul colorat în roșu. În acest caz, scriptul conține o comandă necunoscută, "lalala".
30
30
- În partea dreaptă se află un link către sursa `bug.html:12`, cu numărul liniei pe care a apărut eroarea.
31
31
32
-
Sub mesajul de eroare se află un simbol `>` albastru. El marchează o "linie de comandă" unde putem introduce comenzi JavaScript. Apăsați `key:Enter` ca să le rulați (`key:Shift+Enter` pentru a introduce comenzi pe mai multe linii).
32
+
Sub mesajul de eroare, se află un simbol `>` albastru. El marchează un "command line" unde putem introduce comenzi JavaScript. Apăsați `key:Enter` ca să le rulați.
33
33
34
34
Pentru moment putem vedea erorile și asta e suficient pentru început. Vom reveni mai târziu la uneltele de dezvoltare și vom detalia depanarea în capitolul <info:debugging-chrome>.
35
35
36
+
```smart header="Multi-line input"
37
+
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
38
+
39
+
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
40
+
```
36
41
37
42
## Firefox, Edge, și altele
38
43
@@ -50,12 +55,6 @@ Deschideți preferințele (Preferences) și mergeți în secțiunea de setări a
50
55
51
56
Acum, cu tastele `key:Cmd+Opt+C` puteți afișa sau ascunde consola. De asemenea, în meniul principal a apărut opțiunea "Develop". Are multe comenzi și opțiuni.
52
57
53
-
```smart header="Multi-line input"
54
-
În mod obișnuit, când introducem o linie de cod în consolă și apoi apăsăm `key:Enter`, codul se execută.
55
-
56
-
Pentru a introduce mai multe linii, apăsați `key:Shift+Enter`. În acest fel oricine poate insera fragmente lungi de cod JavaScript.
57
-
```
58
-
59
58
## Rezumat
60
59
61
60
- Uneltele de dezvoltare ne permit să vedem erori, să executăm comenzi, să evaluăm variabile și multe altele.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/01-hello-world/article.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ So first, let's see how we attach a script to a webpage. For server-side environ
9
9
10
10
## The "script" tag
11
11
12
-
JavaScript programs can be inserted into any part of an HTML document with the help of the `<script>` tag.
12
+
JavaScript programs can be inserted almost anywhere into an HTML document using the `<script>` tag.
13
13
14
14
For instance:
15
15
@@ -46,7 +46,7 @@ The `<script>` tag contains JavaScript code which is automatically executed when
46
46
The `<script>` tag has a few attributes that are rarely used nowadays but can still be found in old code:
47
47
48
48
The `type` attribute: <code><script <u>type</u>=...></code>
49
-
: The old HTML standard, HTML4, required a script to have a `type`. Usually it was `type="text/javascript"`. It's not required anymore. Also, the modern HTML standard totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that's an advanced topic; we'll talk about modules in another part of the tutorial.
49
+
: The old HTML standard, HTML4, required a script to have a `type`. Usually it was `type="text/javascript"`. It's not required anymore. Also, the modern HTML standard totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that's an advanced topic, we'll talk about modules in another part of the tutorial.
50
50
51
51
The `language` attribute: <code><script <u>language</u>=...></code>
52
52
: This attribute was meant to show the language of the script. This attribute no longer makes sense because JavaScript is the default language. There is no need to use it.
@@ -60,7 +60,7 @@ Comments before and after scripts.
60
60
//--></script>
61
61
```
62
62
63
-
This trick isn't used in modern JavaScript. These comments hid JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.
63
+
This trick isn't used in modern JavaScript. These comments hide JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.
64
64
65
65
66
66
## External scripts
@@ -73,12 +73,12 @@ Script files are attached to HTML with the `src` attribute:
73
73
<scriptsrc="/path/to/script.js"></script>
74
74
```
75
75
76
-
Here, `/path/to/script.js` is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, `src="script.js"` would mean a file `"script.js"` in the current folder.
76
+
Here, `/path/to/script.js` is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, `src="script.js"`, just like `src="./script.js"`, would mean a file `"script.js"` in the current folder.
0 commit comments