Uvod u JavaScript

Ovde započinjemo seriju naših JavaScript tutoriala na srpskom. Pokušaćemo da sve teme vezane za JavaScript programiranje obradimo na jednostavan i razumljiv način. JavaScript lekcije koje slede, bave se "čistim" JavaScriptom kao programskim jezikom i tipičnim tehnikama programiranja. Kada savladamo makar osnove JavaScripta, možemo početi da učimo i Web DOM, kako bismo primenili JavaScript na našim sajtovima i web aplikacijama.

Počnimo od očiglednog - JavaScript je programski jezik koji se koristi na web stranicama. Izvršavaju ga web čitači i bez njega se danas ne mogu zamisliti web aplikacije. Ako pratimo trend sve većeg korišćenja web aplikacija, možemo reći da je JavaScript jezik budućnosti. U JavaScriptu nema klasičnog objektno-orijentisanog programiranja, već bismo pre mogli da kažemo da je to jezik zasnovan na objektima - može da koristi već gotove objekte. Međutim, kada se budemo više upoznali sa ovim jezikom, videćemo da to i nije baš tako i da koncepti OOP-a, mogu sasvim dobro da se primene i u JavaScriptu.

Tvorac JavaScripta je Brendan Eich - kasnije jedan od osnivača i direktora Mozilla fondacije.

Inače, zvanično ime jezika je EcmaScript. Ovo ime, u "pravom životu" skoro niko ne koristi.

Svaki put kada želite nešto da isprobate u JavaScriptu, možete pokrenuti unapred pripremljen šablon:

template-js

Java i JavaScript

Da raščistimo odmah an početku ovo su dva potpuno drugačija jezika i nemaju skoro ništa zajedničko.

Sličnost ova dva jezika je pre svega u sintaksi (pravila za pisanje naredbi) koja proizilaze iz jezika C. Danas postoji više jezika koji nasleđuju sintaksu C-a, a osim ova dva, poznati su još i C++ (naravno) i PHP. Druga sličnost je u ideji "programiraj jednom, izvršavaj svuda". Java je zasnovana na toj ideji - njeni programi se ne kompajliraju za neki određeni sistem, već se izvršavaju unutar virtuelne mašine. Pošto je JavaScript zamišljen da se izvršava unutar web čitača, to važi i za njegove programe. Jednom napisan program u JavaScript-u izvršavaće se na isti način u svim web čitačima koji ga podržavaju, a samim tim i na različitim operativnim sistemima i računarima.

Međutim, među ovim jezicima postoje značajne razlike. Java je jezik koji podržava klasično objektno-orijentisano programiranje, zasnovano na klasama i nasleđivanju. Ako želite da učite OOP, Java (kao veoma "čist" jezik) je pravi izbor. Sa druge strane, JavaScript je jezik koji je zasnovan na objektima, ali nema zaista "pravo" objektno-orijentisano programiranje. U stvari, u JavaScriptu se može programirati i na takav način, ali jezik je toliko fleksibilan da možete izabrati stil/paradigmu programiranja koju želite - objektno-orijentisano, funkcionalno, klasično proceduralno...

Druga velika razlika je što JavaScript nije strogo tipiziran jezik. U Javi se tipovi promenljivih moraju odrediti unapred. U JavaScriptu promenljive u jednom trenutku mogu sadržati broj, u drugom tekst, posle toga mogu biti referenca na objekat... Ovo svakako zvuči primamljivo programerima-početnicima, koji ne vole disciplinu koju nameću strogo tipizirani jezici, ali zbog velike slobode, u JavaScriptu je moguće napraviti velike greške koje se kasnije teško otkrivaju.

Odakle onda sličnost u imenima? U vreme kada je Netscape uveo JavaScript u svoj web čitač, Java je bila veoma popularna, i proglašena "programskim jezikom Interneta". U Netscapeu su želeli da zajašu taj talas i "ukradu" malo popularnosti i za svoj jezik, pa se tako sticao (lažni) utisak da je u pitanju neka pojednostavljena verzija Jave, koja služi za web stranice. Ironično, Java nikada nije zaživela kao jezik za Internet i popularnost joj je polako splasnula (iako nikada nije prestala da se koristi). Tek mnogo kasnije doživljava svoj veliki bum, kao jezik u kome se programiraju aplikacije za smartfone.

Koliko je JavaScript koristan?

Sve što može biti napravljeno u JavaScriptu, na kraju će i biti napravljeno u JavaScriptu ("Etvudov zakon" - Atwood's Law). JavaScript je verovatno najpotcenjeniji programski jezik danas. Na svom početku, bio je to jezik za uvođenje efekata i dinamiziranje izgleda web stranica. Međutim, sam jezik je napredovao tokom godina, kao i podrška koju mu pružaju web čitači. Programi pisani u ovom jeziku izvršavaju se sve brže, a programeri mogu raditi u više tehnika i čak implementirati poznate programske šablone (design patterns).

Da se ne lažemo - JavaScript programi se nikada neće izvršavati brzo kao programi pisani npr. u jeziku C++, koji se kompajliraju u mašinski jezik. Sa druge strane, postali su dovoljno brzi (zahvaljujući modernim web čitačima i bržim računarima), da se sada u JavaScriptu mogu programirati veoma kompleksne aplikacije, pa čak i igre.

Dobro Loše
Dereferencirani objekti nikada ne mogu da prouzrokuju jednu od najgorih programerskih grešaka - curenje memorije (memory leak), pošto se za to brine "sakupljač smeća" (garbage collector). Ta osobina utiče da se programi uvek izvršavaju sporije - "sakupljač smeća" mora stalno da češlja memoriju i uklanja nepotrebne objekte.
U JavaScriptu možete programirati potpuno besplatno i potpuno legalno, bez ikakvih ograničenja, licenci i sl. Program nije "zaštićen" - uvek je dostupan korisniku, ma koliko pokušavali da ga sakrijemo. Tako drugi programeri mogu da "ukradu" naša rešenja.

JavaScript je napredovao do nivoa veoma ozbiljnog jezika, koji nije u potpunosti lak za savlađivanje čak ni iskusnim programerima.

Primer JavaScript programa

Evo jednog malog primera JavaScript programa. Ne brinite ako ne razumete šta sve ovo znači, vrlo brzo ćemo naučiti kako da pravimo sopstvene JS programe.


  function promena(obj)
  {
    obj.style.color = "#ffc";
    obj.innerHTML = "Ovo je novi tekst";
  }

  var element = document.getElementById("naslov");
  promena(element);
    
js-basic-uvod-sr
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.