CodeWilderness
JS coding flow
Singing Parrot as author
Radošević Dejan

JS - Uvod

JavaScript je skriptni-programski jezik kreiran od strane Brendana Eicha 1995. godine, koji je prvobitno nosio naziv “Mocha”. Unutar Netscape-a (kompanija u kojoj je radio Brendan Eich), jezik je bio poznat kao “LiveScript”, ali kada je izašao u javnost, dobio je naziv “JavaScript” kako bi privukao pažnju Java developera tog vremena. Često se koristi skraćenica “JS” umjesto punog naziva. Međutim, zvanični naziv jezika je “ECMAScript”. Sintaksa jezika i njegovo ponašanje su definisani prema ECMAScript (ES) i TC39 standardima.

Inicijalno jezik je kreiran kako bi se web stranice učinile interaktivnijim, dok danas jezik izlazi iz tih okvira i koristi se i van pretraživača. Većina web sajtova kao i svi moderni pretraživači koriste JS pa ga to čini najšire primjenjivanim programskim jezikom.

Jedan od važnih principa JS-a je očuvanje kompaktibilnosti unazad. To znači da kada se jednom nešto prihvati kao validan JS, neće biti promjene u budućnosti koja će učiniti da taj kod ne bude validan u JS-u. Dakle kada se jednom nešto nađe u JS-u, ne može se više izbaciti jer bi moglo da sruši programe koji su prethodno napisani. Postoje neki izuzeci ali riječ je o rijetkim promjenama koje se odnose na stvari koje su u izuzetno rijetkoj upotrebi.

Interpretacija

JavaScript je često percipiran kao interpreterski jezik, iako njegova priroda nije tako jednostavna. Ono što često dovodi do zabune je činjenica da JS ne isporučuje binarnu formu koda (izvršiv kod), već sam izvorni kod. Međutim, ključno pitanje da li je JS interpreterski ili kompajlirani jezik može se sagledati kroz način upravljanja greškama.

Skriptni jezici izvršavaju kod od vrha prema dnu, što znači da ne postoji inicijalni prolazak kroz kod prije izvršavanja. Ovo znači da će se dio koda izvršiti do određene greške, nakon čega će izvršavanje biti prekinuto. Ova karakteristika je ključna u razumijevanju prirode JS jezika i njegovog upravljanja greškama.

Programi koji prolaze kroz proces parsiranja1 imaju mogućnost da otkriju greške prije samog izvršavanja, što može rezultirati neizvršavanjem programa u slučaju greške. Svi programi koji se kompajliraju moraju proći kroz fazu parsiranja. Nakon parsiranja, program prelazi u fazu prevođenja iz parsirane forme u izvršivu formu. Ovo znači da i jezici koji se parsiraju generišu izvršiv kod prije samog izvršavanja.

Da skratim priču, JS se kompajlira, a u pitanju je JIT2 kompilacija.

JS u pretraživaču

U WEB pretraživačima razlikujemo tri nivoa JavaScript-a:

  1. ECMAScript - omogućava primjenu osnovne funkcionalnosti.
  2. DOM - interfejs koji omogućava interakciju sa elementima web stranice.
  3. BOM - API pretraživača za interakciju sa samim pretraživačem.

JS nema mogućnost pristupa memoriji niskog nivoa ili procesoru, jer je inicijalno kreiran za web pretraživač koji ne zahtijeva takve privilegije.

U pretraživaču JS je u mogućnosti da:

Dodavanje JS skripte/koda unutar HTML dokumenta

Dodavanje se može izvršiti na dva načina:

  1. Interno:

    • unutar <head> elementa
    • unutar <body> elementa
      <head>
        <script type="text/javascript">
          // code
        </script>
      </head>
     
      <body>
        <script type="text/javascript">
          // code
        </script>
      </body>
  2. Eksterno:

Footnotes

  1. Parsiranje je proces analize ulaznog teksta u skladu sa određenim gramatičkim pravilima jezika. U kontekstu programiranja, parsiranje se odnosi na proces analize izvornog koda programskog jezika radi provjere sintakse i formiranja apstraktnog sintaksnog stabla (AST) koje predstavlja strukturu izvornog koda.

  2. JIT kompilacija omogućava dinamičko generisanje i izvršavanje optimizovanog mašinskog koda tokom izvršavanja programa, čime se postiže bolja performansa u poređenju sa čistim interpretiranjem. Ova tehnika je često korišćena u jezicima kao što su Java, JavaScript, .NET …