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
Pažvelkime kuo įpatinga JavaScript kalba, ką mes galime su ja padaryti ir kokios kitos technologijos gali būti naudojamos kartu su ja
3
+
Pažvelkime kuo ypatinga JavaScript kalba, ką mes galime su ja padaryti ir kokios kitos technologijos gali būti naudojamos kartu.
4
4
5
5
## Kas yra JavaScript?
6
6
7
-
Iš pat pradžių *JavaScript* buvo sukurtas tam, kad *"padaryti tinklalapius gyvus"*.
7
+
Iš pat pradžių *JavaScript* buvo sukurta tam, kad *"padarytų tinklalapius gyvus"*.
8
8
9
-
Programos, parašytos šia kalba yra vadinamos *skriptais*. Jos gali būti parašytos tinklalapio HTML ir veikti automatiškai, kuomet tinklalapis kraunamas.
9
+
Programos, parašytos šia kalba yra vadinamos *skriptais* (and. scripts). Jos gali būti parašytos tinklalapio HTML ir suveikti automatiškai, kuomet tinklalapis kraunamas.
10
10
11
-
Skriptai yra rašomi ir vykdomi plain tekstu. Jiem nereikia kompiliavimo fazės.
11
+
Skriptai yra rašomi ir vykdomi paprastu (ang. "plain") tekstu. Jiems nereikia kompiliavimo fazės.
12
12
13
13
Šiuo aspektu JavaScript labai skiriasi nuo [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
14
14
@@ -18,100 +18,100 @@ Iš pat pradžių JavaScript turėjo kitą pavadinimą: "LiveScript". Tačiau Ja
18
18
Tačiau ilgainiui JavaScript tapo nepriklausoma kalba, turinti atskirą specifikaciją, kuri vadinama [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript). Šiuo metu JavaScript ir Java neturi nieko bendro.
19
19
```
20
20
21
-
Dabar JavaScript gali būti vykdomas ne tik naršyklėje, bet taip pat ir serveryje arba praktiškai bet kokiame įrenginyje, kuris turi specialią programą, vadinama JavaScript varikliu [(JavaScript engine)](https://en.wikipedia.org/wiki/JavaScript_engine).
21
+
Dabar JavaScript gali būti vykdomas ne tik naršyklėje, bet taip pat ir serveryje arba praktiškai bet kokiame įrenginyje, kuris turi specialią programą, vadinamą JavaScript varikliu [(JavaScript engine)](https://en.wikipedia.org/wiki/JavaScript_engine).
22
22
23
-
Naršyklės turi savo vidinį variklį, kuris kartais vadinamas "JavaScript virtuali mašiną"
23
+
Naršyklės turi savo vidinį variklį, kuris kartais vadinamas "JavaScript virtuali mašina"
24
24
25
-
Skirtingi varikliai turi skirtingus "nickus". Pavyzdžiui:
25
+
Skirtingi varikliai turi skirtingus slapyvardžius (ang. "nicknames"). Pavyzdžiui:
26
26
27
27
-[V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- Chrome ir Opera.
- Egzistuoja kitų nickų, tokių kaip "Trident", "Chakra" skirtingom IE versijom, "ChakraCore" Microsoft Edge naršklėje, "Nitro" ir "SquirellFish" Safari ir t.t.
29
+
- Egzistuoja kiti slapyvardžiai, tokie kaip "Trident", "Chakra" skirtingoms IE versijom, "ChakraCore" Microsoft Edge naršklėje, "Nitro" ir "SquirellFish" Safari ir t.t.
30
30
31
31
Šias sąvokas verta atsiminti, nes jos naudojamos straipsniuose, skirtuose programuotojams. Mes taip pat jas naudosime. Pavyzdžiui, jeigu "feature X yra palaikoma V8", reiškias jinai ko gero veikia Chrome ir Opera naršklėse.
32
32
33
33
```smart header="Kaip veikia varikliai?"
34
34
35
-
Varikliai yra sudėtingi daiktai, bet basic'ai yra paprasti.
35
+
Varikliai yra sudėtingi, bet pagrindai yra paprasti.
36
36
37
-
1. Variklis (vidinis, jei jis yra naršyklėje) skaito ("parsina") skriptą.
38
-
2. Konvertuoja ("kompiliuoja") skriptą į mašininį kodą.
39
-
3. Vykdomas mašininis kodas.
37
+
1. Variklis (vidinis, jei jis yra naršyklėje) skaito (ang. "parsing") skriptą.
38
+
2. Konvertuoja (dar kitaip - kompiliuoja) skriptą į mašininį kodą.
39
+
3. Įvykdomas mašininis kodas.
40
40
41
41
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.
42
42
```
43
43
44
-
## Ką gali JavaScript'as padaryti naršyklėje?
44
+
## Ką gali JavaScript padaryti naršyklėje?
45
45
46
-
Modernus JavaScript'as yra "saugi" programavimo kalba. Ji neleidžia programuotojui pasiekti atminties arba CPU, nes iš pat pradžių ji buvo sukurta naršklėm, kuriom to nereikia.
46
+
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.
47
47
48
-
JavaScript'o galimybės stipriai priklauso nuo aplinkos, kurioje jis vykdomas. Pavyzdžiui, [Node.js](https://wikipedia.org/wiki/Node.js) palaiko funkcijas, kurios leidžia Javascript'ui skaityti/rašyti failus, vykdyti kompiuterių tinklų užklausas ir pan.
48
+
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.
49
49
50
-
Naršyklėje JavaScript'as gali daryti bet ką, kas liečia tinklalapio manipuliacijas, interakcijas su vartotojais ir web serveriu.
50
+
Naršyklėje JavaScript gali daryti bet ką, tame tarpe tinklalapio manipuliacijas, sąveikas (ang. "interaction") su vartotojais ir web serveriu.
51
51
52
-
Pavyzdžiui, JavaScript'as naršyklėje gali:
52
+
Pavyzdžiui, JavaScript naršyklėje gali:
53
53
54
54
- Pridėti naują HTML į tinklalapį, pakeisti jau esamą turinį, pakeisti stilius.
55
55
- Reaguoti į vartotojo veiksmus, pelės, klaviatūros paspaudimus.
56
-
- Siųsti užklausas į remote serverius, atsisiųsti ir upload'inti failus ([AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) ir [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) technologijos).
57
-
- Gauti ir nustatyti cookies, klausti vartotojo, parodyti žinutes.
58
-
- Išsaugoti duomenis kliento pusėje ("local storage").
56
+
- Siųsti užklausas į nuotolinius (ang. "remote") serverius, atsisiųsti ir įkelti (ang. "upload") failus ([AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) ir [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) technologijos).
57
+
- Gauti ir nustatyti slapukus (ang. "cookies"), užduoti klausimus vartotojo ir parodyti žinutes.
58
+
- Išsaugoti duomenis kliento pusėje (ang. "local storage").
59
59
60
-
## Ko NEGALI JavaScript'as naršyklėje?
60
+
## Ko NEGALI PADARYTI JavaScript naršyklėje?
61
61
62
-
JavaScript'o galimybės naryklėje yra ribojamos dėl vartotojų saugumo. Tikslas - neleisti tinklalapiam pasiekti privačius duomenis arba žaloti vartotojo duomenis.
62
+
JavaScript galimybės naryklėje yra ribojamos dėl vartotojų saugumo. Tikslas - neleisti tinklalapiams pasiekti privačius duomenis arba žaloti vartotojo duomenis.
63
63
64
64
Ribojimų pavyzdžiai:
65
-
- JavaScript'as tinklalapyje negali skaityti/rašyti failus kietajame diske, juos kopijuoti arba vykdyti programas. JavaScript'as neturi tiesioginios prieigos prie operacinės sistemos funkcijų.
65
+
- 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ų.
66
66
67
-
Modernios naršklės leidžia dirbti su failais, bet prieiga ribojama ir tai leidžiama tik jeigu vartotojas įvykdo kažką konkretaus. Pavyzdžiui, dragg'ina failą į naršklę arba pažymi failą per `<input>` tagą.
67
+
Modernios naršklės leidžia dirbti su failais, bet prieiga ribojama ir tai leidžiama tik jeigu vartotojas įvykdo kažką konkretaus. Pavyzdžiui, perkelia failą į naršyklę arba pažymi failą naudodamas `<input>` žymą.
68
68
69
-
Yra būdų komunikuoti su kamera/mikrofonu ir kitais įrenginiais, bet tai reikalauja išreikštinio vartotojo leidimo. Taigi, JavaScript'inis tinklalapis negali suktai įjungti web kamerą, stebėti aplinką ir siųsti informaciją į [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
70
-
-Skirtingi tabai dažniausiai nežino vienas apie kitą. Tačiau kartais vienas tab'as naudoja JavaScript'ą tam, kad atidarytų kitą tab'ą, bet netgi tokiu atveju, JavaScript'as viename tab'e negali pasiekti kito tab'o, jeigu jie ateina iš skirtingų tinklalapių (skirtingas domenas, protokolas arba portas).
71
-
Tai vadinama "Same Origin Policy". Tam, kad tai apeiti, *abudu tinklalapiai* turi sutikti apsikeisti duomenimis ir turėti specialų JavaScript kodą, kuris tai handlintų. Mes apie tai kalbėsime viename iš tutorialų.
72
-
Šis ribojimas yra, vėlgi, dėl vartotojų saugmo. Tinklapis `http://anysite.com`, kurį vartotojas atidarė, neturėtų pasiekti kito naršklės tabo su URL `http://gmail.com` ir vogti informaciją.
73
-
- JavaScript'as 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 header'ius) iš remote serverio pusės. Vėlgi, dėl saugumo priežasčių.
69
+
Yra būdų komunikuoti su kamera/mikrofonu ir kitais įrenginiais, bet tai reikalauja išreikštinio vartotojo leidimo. Taigi, JavaScript tinklalapis negali suktai įjungti web kameros, stebėti aplinkos ir siųsti informaciją į [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
70
+
-Atskiros naršyklės kortelės (ang. "tabs") dažniausiai nežino viena apie kitą. Tačiau kartais viena kortelė naudoja JavaScript tam, kad atidarytų kitą kortelę, bet netgi tokiu atveju, JavaScript vienoje kortelėje negali pasiekti kitos, jeigu jie ateina iš skirtingų tinklalapių (skirtingas domenas, protokolas arba portas).
71
+
Tai vadinama "Same Origin Policy". Tam, kad tai apeiti, *abudu tinklalapiai* turi sutikti apsikeisti duomenimis ir turėti specialų JavaScript kodą, kuris tai tvarkytų. Mes apie tai kalbėsime vienoje iš pamokų.
72
+
Šis ribojimas yra, vėlgi, dėl vartotojų saugmo. Tinklapis `http://anysite.com`, kurį vartotojas atidarė, neturėtų pasiekti kitos naršklės kortelės su URL `http://gmail.com` ir vogti informaciją.
73
+
- 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ų.
74
74
75
75

76
76
77
-
Šių ribojimų nėra, jeigu JavaScript'as vykdomas ne naršyklėje, bet, pavyzdžiui, serveryje. Šiuolaikinės naršyklės taip pat turi plugin'us/extension'us, kurie gali prašyti vartotojų leidimo.
77
+
Š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.
78
78
79
-
## Ko ypatingas JavaScript?
79
+
## Kuo ypatinga JavaScript?
80
80
81
-
JavaScript turi bent jau *tris* nuostabius dalykus:
81
+
JavaScript turi bent *tris* nuostabius dalykus:
82
82
83
83
```compare
84
84
+ Pilna integracija su HTML/CSS
85
85
+ Paprastus dalykus padaryti yra nesudėtinga
86
-
+ Palaikoma visuose populiariausiuose naršyklėse
86
+
+ Palaikoma visose populiariausiose naršyklėse
87
87
```
88
-
JavaScript'as yra vienintelė naršyklės technologija, kuri turi šiuos tris dalykus
88
+
JavaScript yra vienintelė naršyklės technologija, kuri turi šiuos tris dalykus.
89
89
90
-
Štai kuo ypatingas JavaScript'as. Dėl to tai yra viena labiausiai išplitusių technologijų, kalbant apie naršyklės interfeiso kūrimą.
90
+
Štai kuo ypatinga JavaScript. Tai yra viena labiausiai išplitusių technologijų, kalbant apie naršyklės sąsajos (ang. "interface") kūrimą.
91
91
92
-
Tačiau su JavaScript'u galima rašyti serverines, mobilias aplikacijas ir pan.
92
+
Tačiau su JavaScript galima rašyti serverines, mobilias programas (ang. "applications") ir pan.
93
93
94
94
## Alternatyvos
95
95
96
-
JavaScript'o sintaksė, be abejo, tinka ne visiem ir ne visada. Skirtingi žmonės nori skirtingų pribumbasų.
96
+
JavaScript sintaksė, be abejo, tinka ne visiem ir ne visada. Skirtingi žmonės nori skirtingų savybių.
97
97
98
-
Tas yra logiška, nes kiekvienas projektas yra skirtingas ir gali turėti labai skirtingų reikalavimų.
98
+
Nieko nuostabaus, nes kiekvienas projektas yra skirtingas ir gali turėti labai skirtingų reikalavimų.
99
99
100
-
Dėl šių priežasčių atsirado daug kalbų, kurios yra *transpiliuojamos* (konvertuojamos) į JavaScript'ą ir tik tada vykdomos naršyklėje.
100
+
Dėl šių priežasčių atsirado daug kalbų, kurios yra konvertuojamos (dar kitaip - perrašomos, ang. "*transpiling*") į JavaScript ir tik tada vykdomos naršyklėje.
101
101
102
-
Modernūs įrankiai atlieką transpiliavimą labai greitai, tad programuotojai gali programuoti šiomis kalbomis nesigilindami į patį transpiliavimo procesą.
102
+
Modernūs įrankiai atlieka perrašymą labai greitai, tad programuotojai gali programuoti šiomis kalbomis nesigilindami į patį konvertavimo procesą.
103
103
104
104
Tokių kalbų pavyzdžiai:
105
105
106
-
-[CoffeeScript](http://coffeescript.org/) yra "syntactic sugar" JavaScript'ui. Trumpesnė sintaksė, su kuria galima rašyti aiškesnį ir konkretesnį kodą. Tas dažniausiai patinka Ruby programuotojams.
107
-
-[TypeScript](http://www.typescriptlang.org/) pagrindinis tikslas yra įvesti statinį tipizavimą. Tas palengvina sudėtingų sistemų programavimą. Sukurtas Microsft.
106
+
-[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.
107
+
-[TypeScript](http://www.typescriptlang.org/) pagrindinis tikslas yra įvesti statinį tipizavimą. Tai palengvina sudėtingų sistemų programavimą. Sukurtas Microsoft.
108
108
-[Flow](http://flow.org/) taip pat turi statinį tipizavimą, bet kiek kitokiu būdu. Sukurtas Facebook.
109
109
-[Dart](https://www.dartlang.org/) yra atskira kalba, kuri turi savo paties variklį, kuris veikia ne naršyklėse (pvz. mobiliose aplikacijose), bet taip pat gali būti transpiliuotas į Javascriptą. Sukurtas Google.
110
110
111
-
Yra ir daugiaų pavyzdžių. Tačiau, netgi jeigu mes naudojame kažkurią iš transpiliuojamų kalbų, suprasti JavaScript'ą yra ne mažiau svarbu.
111
+
Yra ir daugiau pavyzdžių. Tačiau, netgi jeigu mes naudojame kažkurią iš transpiliuojamų kalbų, suprasti JavaScript yra ne mažiau svarbu.
112
112
113
-
## Reziumė
113
+
## Santrauka
114
114
115
-
- JavaScript'as iš pat pradžių buvo sukurtas kaip kalba, veikianti naršyklėje, bet dabar turi ir daugiau aplinkų, kuriose gali būti vykdoma.
116
-
- Šią dieną JavaScript'as yra unikalus tuo, kad tai labiausiai paplitusi kalba naršyklei, turinti pilną integraciją su HTML/CSS.
117
-
- Yra daug kalbų, kurios gali būti "transipliuotos" į JavaScript'ą ir turi papildomų funkcijų. Rekomenduojama į jas bent jau trumpai pažvelgti po to, kaip išmoksti JavaScript'ą.
115
+
- JavaScript iš pat pradžių buvo sukurtas kaip kalba, veikianti naršyklėje, bet dabar turi ir daugiau aplinkų, kuriose gali būti vykdoma.
116
+
- Šią dieną JavaScript yra unikali tuo, kad tai labiausiai paplitusi kalba naršyklei, turinti pilną integraciją su HTML/CSS.
117
+
- Yra daug kalbų, kurios gali būti konvertuojamos į JavaScript ir turi papildomų funkcijų. Rekomenduojame į jas bent jau trumpai pažvelgti po to, kaip išmoksite JavaScript.
0 commit comments