Skip to content

Commit 4e5483a

Browse files
author
Veljko Pejović
authored
Update article.md
1 parent 2f6b8f8 commit 4e5483a

1 file changed

Lines changed: 69 additions & 67 deletions

File tree

Lines changed: 69 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,122 @@
1-
# An Introduction to JavaScript
1+
# Uvod u JavaScript
22

3-
Let's see what's so special about JavaScript, what we can achieve with it, and which other technologies play well with it.
3+
Pogledajmo šta je tako posebno u JavaScriptu, šta možemo postići sa njim i koje druge tehnologije se sa njim dobro 'igraju'.
44

5-
## What is JavaScript?
5+
## Šta je JavaScript ?
66

7-
*JavaScript* was initially created to *"make web pages alive"*.
7+
*JavaScript* je prvobitno kreiran kako bi *"oživio web stranice"*.
88

9-
The programs in this language are called *scripts*. They can be written right in a web page's HTML and run automatically as the page loads.
9+
Programi na ovom jeziku se nazivaju *skripte*. Mogu se napisati pravo u HTML-u veb stranice i pokrenuti automatski kada se stranica učita.
1010

11-
Scripts are provided and executed as plain text. They don't need special preparation or compilation to run.
11+
Skripte se pružaju i izvode u obliku običnog teksta. Za pokretanje im nisu potrebne posebne pripreme ili kompilacije.
1212

13-
In this aspect, JavaScript is very different from another language called [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
13+
U ovom aspektu, JavaScript se veoma razlikuje od drugog jezika koji se zove [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
1414

15-
```smart header="Why <u>Java</u>Script?"
16-
When JavaScript was created, it initially had another name: "LiveScript". But Java was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
15+
```smart header="Zašto <u>Java</u>Script?"
16+
Kada je kreiran JavaScript, u početku je imao drugo ime: "LiveScript". Ali Java je u to vreme bila veoma popularna, pa je odlučeno da će pozicioniranje novog jezika Java-ovog „mlađeg brata“
1717
18-
But as it evolved, JavaScript became a fully independent language with its own specification called [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), and now it has no relation to Java at all.
18+
Ali kako se razvijao, JavaScript je postao potpuno nezavisan jezik sa sopstvenom specifikacijom [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), a sada uopšte nema veze sa Javom.
1919
```
2020

21-
Today, JavaScript can execute not only in the browser, but also on the server, or actually on any device that has a special program called [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
21+
Danas JavaScript može da se izvršava ne samo u pregledaču, već i na serveru, ili zapravo na bilo kom uređaju koji ima poseban program koji se zove [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
2222

23-
The browser has an embedded engine sometimes called a "JavaScript virtual machine".
23+
Preglednik ima ugrađeni motor koji se ponekad naziva i „JavaScript virtuelna mašina“.
2424

25-
Different engines have different "codenames". For example:
25+
Različite mašine imaju različita "kodna imena". Na primer:
2626

27-
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome and Opera.
28-
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
29-
- ...There are other codenames like "Trident" and "Chakra" for different versions of IE, "ChakraCore" for Microsoft Edge, "Nitro" and "SquirrelFish" for Safari, etc.
27+
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- u Chrome-u i Opera.
28+
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- u Firefox-u.
29+
- ... Postoje i druga kodna imena poput "Trident" i "Chakra" za različite verzije IE-a, "ChakraCore" za Microsoft Edge, "Nitro" i "SkuirrelFish" za Safari, itd.
3030

31-
The terms above are good to remember because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome and Opera.
31+
Gore navedene pojmove dobro je zapamtiti jer se koriste u člancima za programere na Internetu. Koristićemo i njih. Na primer, ako „odliku X podržava V8“, ona verovatno funkcioniše u Chrome-u i Operi.
3232

33-
```smart header="How do engines work?"
33+
```smart header="Kako rade mašine ?"
3434
35-
Engines are complicated. But the basics are easy.
35+
Motori su komplikovani. Ali osnove su jednostavne.
3636
37-
1. The engine (embedded if it's a browser) reads ("parses") the script.
38-
2. Then it converts ("compiles") the script to the machine language.
39-
3. And then the machine code runs, pretty fast.
37+
1. Motor (ugrađen ako je pretraživač) čita („analizira“) skriptu.
38+
2. Zatim pretvara ("kompajlira") skriptu u mašinski jezik.
39+
3. A onda mašinski kod radi prilično brzo.
4040
41-
The engine applies optimizations at each step of the process. It even watches the compiled script as it runs, analyzes the data that flows through it, and applies optimizations to the machine code based on that knowledge. When it's done, scripts run quite fast.
41+
Motor primenjuje optimizacije na svakom koraku procesa. Čak posmatra sastavljenu skriptu dok radi, analizira podatke koji prolaze kroz nju i primenjuje optimizacije na mašinskom kodu na osnovu tog znanja. Kada je gotov, skripte se pokreću prilično brzo.
4242
```
4343

44-
## What can in-browser JavaScript do?
44+
## Šta JavaScript u internet pretraživaču može da radi?
4545

46-
Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or CPU, because it was initially created for browsers which do not require it.
46+
Savremeni JavaScript je "siguran" programski jezik. Ne pruža pristup memoriji ili CPU-u nižeg nivoa, jer je prvobitno kreiran za pregledače koji to ne zahtevaju.
4747

48-
JavaScript's capabilities greatly depend on the environment it's running in. For instance, [Node.js](https://wikipedia.org/wiki/Node.js) supports functions that allow JavaScript to read/write arbitrary files, perform network requests, etc.
48+
Mogućnosti JavaScript-a u velikoj meri zavise od okruženja u kome se nalazi. Na primjer [Node.js](https://wikipedia.org/wiki/Node.js) podržava funkcije koje omogućuju JavaScriptu da čita / piše proizvoljne datoteke, izvršava mrežne zahteve itd.
4949

50-
In-browser JavaScript can do everything related to webpage manipulation, interaction with the user, and the webserver.
50+
JavaScript u pretraživaču može učiniti sve što se odnosi na manipulaciju web stranicama, interakciju sa korisnikom i web serverom.
5151

52-
For instance, in-browser JavaScript is able to:
52+
Na primer, JavaScript u pregledaču može:
5353

54-
- Add new HTML to the page, change the existing content, modify styles.
55-
- React to user actions, run on mouse clicks, pointer movements, key presses.
56-
- Send requests over the network to remote servers, download and upload files (so-called [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) and [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) technologies).
57-
- Get and set cookies, ask questions to the visitor, show messages.
58-
- Remember the data on the client-side ("local storage").
54+
- Dodajte novi HTML na stranicu, promenite postojeći sadržaj, izmenite stilove.
55+
- Reaguje na akcije korisnika, pokretanje određene radnje klikom miša, pokretanje pokazivača, klik na tasteru.
56+
- Slanje zahteva preko mreže udaljenim serverima, preuzimanje i učitavanje datoteka (takozvani [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) i [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) tehnologije).
57+
- Dobijajte i postavljajte kolačiće, postavljajte pitanja posetiocu, pokažite poruke.
58+
- Zapamtite podatke na strani klijenta ("lokalna memorija").
5959

60-
## What CAN'T in-browser JavaScript do?
60+
## Šta NE MOŽETE u JavaScript pretraživaču?
6161

62-
JavaScript's abilities in the browser are limited for the sake of the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
62+
Mogućnosti JavaScripta u pretraživaču su ograničene zbog bezbednosti korisnika. Cilj je sprečiti zlo veb stranici da pristupi privatnim podacima ili našteti korisnikovim podacima.
6363

64-
Examples of such restrictions include:
64+
Primeri takvih ograničenja uključuju:
6565

66-
- JavaScript on a webpage may not read/write arbitrary files on the hard disk, copy them or execute programs. It has no direct access to OS system functions.
66+
- JavaScript na veb stranici možda ne može čitati / pisati proizvoljne datoteke na hard disku, kopirati ih ili izvršavati programe. Nema direktan pristup funkcijama sistema OS.
6767

68-
Modern browsers allow it to work with files, but the access is limited and only provided if the user does certain actions, like "dropping" a file into a browser window or selecting it via an `<input>` tag.
68+
Savremeni pregledači omogućavaju mu da radi sa datotekama, ali je pristup ograničen i pruža se samo ako korisnik izvrši određene radnje, poput „puštanja“ datoteke u prozor pregledača ili izbora pomoću „<input>“ taga.
6969

70-
There are ways to interact with 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).
71-
- 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 if they come from different sites (from a different domain, protocol or port).
70+
Postoje načini za interakciju s kamerom / mikrofonom i drugim uređajima, ali za njih je potrebno izričito odobrenje korisnika. Dakle, stranica sa omogućenim JavaScriptom možda ne dozvoljava da večno omogućuju veb kameru, posmatrajte okolinu i šaljite informacije na [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
71+
72+
- Različiti tabovi / prozori uglavnom ne znaju jedni o drugima. Ponekad to urade, na primer kada jedan prozor koristi JavaScript da otvori drugi. Ali čak i u ovom slučaju, JavaScript s jedne stranice možda ne može pristupiti drugoj ako dolaze sa različitih veb lokacija (sa drugog domena, protokola ili porta).
7273

73-
This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and contain a special JavaScript code that handles it. We'll cover that in the tutorial.
74+
To se naziva „Politika istog porekla“. Da biste to rešili, * obe stranice * moraju se složiti za razmenu podataka i sadržavati poseban JavaScript kod koji njime rukuje. Doći ćemo i do toga tutorijala.
7475

75-
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` and steal information from there.
76-
- 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.
76+
Ovo ograničenje je, opet, zbog bezbednosti korisnika. Stranica sa `http: // anisite.com` koju je korisnik otvorio ne smije biti u mogućnosti da pristupi drugoj kartici pregledača sa URL-om `http://gmail.com` i krade informacije odatle.
77+
78+
- JavaScript može lako da komunicira preko mreže sa serverom odakle je došla trenutna stranica. Ali njegova sposobnost da prima podatke sa drugih lokacija / domena je osakaćena. Iako je moguće, zahteva izričit dogovor (izražen u HTTP zaglavima) sa udaljene strane. Još jednom, to je sigurnosno ograničenje.
7779

7880
![](limitations.svg)
7981

80-
Such limits do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugin/extensions which may ask for extended permissions.
82+
Takva ograničenja ne postoje ako se JavaScript koristi izvan pregledača, na primer na serveru. Savremeni pregledači takođe dozvoljavaju dodatak / proširenja koji mogu tražiti proširenja dozvola.
8183

82-
## What makes JavaScript unique?
84+
## Po čemu je JavaScript jedinstven?
8385

84-
There are at least *three* great things about JavaScript:
86+
Postoje najmanje *tri* sjajne stvari o JavaScript-i :
8587

8688
```compare
87-
+ Full integration with HTML/CSS.
88-
+ Simple things are done simply.
89-
+ Support by all major browsers and enabled by default.
89+
+ Potpuna integracija sa HTML-om/CSS-om.
90+
+ Jednostavne stvari se rade jednostavno.
91+
+ Podrška svih glavnih pregledača i omogućena podrazumijevano.
9092
```
91-
JavaScript is the only browser technology that combines these three things.
93+
JavaScript je jedina tehnologija pretraživača koja kombinuje ove tri stvari.
9294

93-
That's what makes JavaScript unique. That's why it's the most widespread tool for creating browser interfaces.
95+
To čini JavaScript jedinstvenim. Zato je to najrasprostranjeniji alat za kreiranje interfejsa pretraživača.
9496

95-
That said, JavaScript also allows to create servers, mobile applications, etc.
97+
Uz to, JavaScript takođe omogućava kreiranje servera, mobilnih aplikacija itd.
9698

97-
## Languages "over" JavaScript
99+
## Jezici "preko" JavaScript-e
98100

99-
The syntax of JavaScript does not suit everyone's needs. Different people want different features.
101+
Sintaksa JavaScript ne odgovara svačijim potrebama. Različiti ljudi žele različite karakteristike.
100102

101-
That's to be expected, because projects and requirements are different for everyone.
103+
To je očigledno, jer su projekti i zahtevi za svakoga različiti.
102104

103-
So recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
105+
Tako se nedavno pojavila mnoštvo novih jezika koji su * prevedeni * (pretvoreni) u JavaScript pre nego što se pokrenu u pretraživaču.
104106

105-
Modern tools make the transpilation very fast and transparent, actually allowing developers to code in another language and auto-converting it "under the hood".
107+
Savremeni alati čine transpilaciju veoma brzom i preglednom, ustvari omogućavajući programerima da kodiraju na drugom jeziku i automatski ga pretvaraju "pod haubom".
106108

107-
Examples of such languages:
109+
Primeri takvih jezika:
108110

109-
- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
110-
- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
111-
- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
112-
- [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.
111+
- [CoffeeScript](http://coffeescript.org/) je "sintaktički šećer" za JavaScript. Uvodi kraću sintaksu, omogućavajući nam pisanje jasnijeg i preciznijeg koda. Obično se Ruby programerima sviđa.
112+
- [TypeScript](http://www.typescriptlang.org/) koncentrisana je na dodavanje „strogog unosa podataka“ radi pojednostavljenja razvoja i podrške složenih sistema. Razvio ga je Microsoft.
113+
- [Flow](http://flow.org/) takođe dodaje podatke za unos podataka, ali na drugačiji način. Razvijen od strane Facebook-a.
114+
- [Dart](https://www.dartlang.org/) je samostalan jezik koji ima svoj motor koji radi u okruženjima koja nisu u pretraživaču (poput mobilnih aplikacija), ali takođe se može prevesti u JavaScript. Razvio Google.
113115

114-
There are more. Of course, even if we use one of transpiled languages, we should also know JavaScript to really understand what we're doing.
116+
Postoji više. Naravno, čak i ako koristimo jedan od prevedenih jezika, trebalo bi da znamo i JavaScript da bismo zaista razumeli šta radimo.
115117

116-
## Summary
118+
## Rezime
117119

118-
- JavaScript was initially created as a browser-only language, but is now used in many other environments as well.
119-
- Today, JavaScript has a unique position as the most widely-adopted browser language with full integration with HTML/CSS.
120-
- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
120+
- JavaScript je u početku kreiran kao jezik samo za pregledač, ali se sada koristi i u mnogim drugim okruženjima.
121+
- Danas JavaScript ima jedinstvenu poziciju kao najšire prihvaćeni jezik pregledača sa potpunom integracijom sa HTML-om / CSS-om.
122+
- Postoji mnogo jezika koji se "prevode" u JavaScript i pružaju određene funkcije. Preporučuje se da ih sagledate, bar na kratko, nakon savladavanja JavaScripta.

0 commit comments

Comments
 (0)