JSkript

S Vikipedije, slobodne enciklopedije
JSkript
Originalni nazivengl. JScript
Modelskriptni jezik
Pojavio se1996.
Autor(i)Microsoft
UticajiJavaScript

JSkript (engl. JScript) je dijalekt ECMAScript specifikacije jezika kreiran od strane Microsoft-a. Predstavlja interpretiran, objektno-orijentisan skript jezik. JSkript je prvo bio podržan od strane Internet Explorer 3 pretraživača u avgustu 1996. godine. Njegova najnovija verzija je Jskript 9.0 u okviru Internet Explorer 9. JSkript 10.0 je izdvojeni dijalekt, poznat kao JScript.NET, koji uvodi razne nove mogućnosti iz napuštenog četvrtog izdanja ECMAScript standarda. Mora biti kompajliran za .NETFramework verziju 2 ili verziju 4.

Poređenje sa JavaScript-om[uredi | uredi izvor]

Mnogi smatraju da je JSkript pseudonim za JavaScript ili određenu verziju iste[1]. Predstavljaju različite skript jezike, ali tokom njihovog razvoja razlike su svedene na minimum. Zapravo, JSkript je nastao kao posledica zaobilaženja problema zaštitnog znaka koji je u datom momentu imala korporacija Sun Microsystems nad JavaScript jezikom. Jedna od ključnih razlika između pomenutih jezika jeste što JSkript podržava uslovnu kompilaciju, koja omogućava programeru da selektivno izvršava kod u okviru blok komentara[2]. Ovo je dodatak ECMAScript standardu koji nije podržan u drugim implementacijama JavaScript-a. Naime nakon uvođenja ECMAScript specifikacije postoji veoma mala razlika izmeću dve pomenute skripte radi omogućavanja kompatibilnosti istog koda u različitim veb pretraživačima, kao i postojeća razlika u verzijama.[3]

Istorijat[uredi | uredi izvor]

Inicijalno Netscape 2 je bio jedini pretraživač sa podrškom za skriptovan jezik, koji se zvao LiveScript. Ime mu je promenjeno u JavaScript radi publiciteta koji je Java programski jezik dobijao u to vreme. Microsoft u pokušaju da pridobije deo tržišta, koji je trenutno imao Netscape, sa Internet Explorerom 3 uvodi dva skript jezika: VBScript (zasnovan na Visual Basic jeziku) i klon JavaScript jezika koji je nazvan JSkript. Kroz istoriju, Internet Explorer je imao isti deo tržišta kao i Netscape, pa je bilo potrebno uvesti rešenje problema tadašnje prevelike nekompatibilnosti između ova dva skript jezika. Kao rezoluciju problema Netscape je predao kontrolu nad jezikom JavaScript European Computer Manufacturer Association(ECMA) koji su formalizovali standard kao ECMAScript. Tada je započeta i formalizacija Document Object Model(DOM) koji je do tad dozvoljavao skript jezicima da dobiju potpunu kontrolu nad sadržajem na stranici. Pre njegove implemetacije Internet Explorer i Netscape su imali svoje verzije DOM-a, Microsoft-ova je bila [document.all]. ECMAScript i univerzalni DOM su maltene otklonili skoro sve razlike JSkript i JavaScript. Iako i dalje postoji par razlika, moguće je napisati funkcionalan kod koji će preko Internet Explorer-a biti pokretan kao JSkript, a preko ostalih kao JavaScript uz minimalan broj modifikacija[4].

Osobine[uredi | uredi izvor]

JSkript je implementiran kao Active Scripting pokretač. Ovo znači da se može "uključiti" u OLEAutomation aplikacije koje podržavaju Active Scripting, kao što su Internet Explorer, Active Server Pages i Windows Script Host. To takođe znači da te aplikacije mogu da koriste mnogobrojne Active Scripting jezike, na primer Jskript, VBScript ili PerlScript. JSkript je veoma moćan za svoje namene, nije sažeta verzija niti pojednostavljenje nekog drugog jezika (iako je indirektno povezan sa programskim jezikom Java). Međutim, ovaj jezik ima određena ograničenja. U njemu se ne mogu pisati samostalne aplikacije i nema ugrađenu podršku za čitanje i pisanje fajlova. Štaviše, skriptovi napisani u JSkript-u se mogu pokrenuti samo uz prisutvo interpretera, ili "host-a" kao što je ASP(Active Server Pages) , Internet Explorera-a ili Windows Script Host-a. JSkript nije strogo tipiziran jezik, što znači da se tipovi podataka i promenljive ne moraju ekplicitno deklarisati, a JSkript u mnogim slučajevima sam vrši konverziju ukoliko postoji potreba. Po pitanju tipova promenljivih, među osnovnim se podrazumevaju String, Number, Boolean, Array, Object[5]. Uključuje i podršku za rad sa datumima, trigonometrijskim funkcijama[6] i regularnim izrazima[7]. Nasuprot klasama uveden je pojam prototipova. Objekat se može definisati kreiranjem funkcije konstruktora. JSkript uključuje skoro sve karakteristike iz NETFramework-ove biblioteke klasa.

Nizovi[uredi | uredi izvor]

Niz literala može inicijalizovati niz u JScript-u. Niz literala, koji predstavlja objekat JScript Array, prikazan je listom u kojoj su elementi odvojeni zarezom, a koja je okružena parom uglastih zagrada ([]). Svaki element liste može biti ili važeći JScript izraz ili prazan. Indeksni broj prvog elementa u nizu literalnih listi je nula, dok svaki sledeći element na listi odgovara sledećem elementu u nizu. Sledeći primer prikazuje inicijalizaciju promenljive h kao niz sa tri elementa: var x = [1,2,3];

Logički tip[uredi | uredi izvor]

Dok numerički tipovi podataka i nizovi mogu imati gotovo neograničen broj različitih vrednosti, logički tip podataka (boolean) može imati samo dva: tačno i netačno (True and False). Logička vrednost izražava validnost nekog stanja tj. govori da li je dati uslov tačan ili netačan. Za razliku od programskih jezika poput C-a, gde su naredbe grananja i petlje uslov smatrali netačnim ukoliko ima vrednost 0, JScript koristi logičke vrednosti.

Numerički tipovi[uredi | uredi izvor]

Izbor između dva tipa numeričkih podataka u Jscript-u, celobrojnih i brojeva sa pokretnim zarezom zavisi od posebnih okolnosti u kojima se koriste. Među cele brojeve spadaju pozitivni, negativni celi brojevi i nula. Oni mogu biti zastupljeni u osnovi 10 (dekadni), osnovi 8 (oktalni) i osnovi 16 (heksadekadni). Većina brojeva u Jscript-u piše se u dekadnoj osnovi, međutim ukoliko postoji potreba za drugom osnovom, oktalne brojeve prefiskujemo sa vodećom 0. Broj sa vodećom nulom koji ne sadrži cifre 0 - 7 tumači se kao decimalni broj. Heksadekadni brojevi se označavaju vodećim "0k" i mogu sadržati cifre od 0 do 9 kao i slova od A do F koja predstavljaju cifre od 10 do 15 u osnovi 10. Prema tome 0kF bi bilo ekvivalent broju 15, a 0k10 broju 16. Oktalni i heksadekadni brojevi ne mogu imati decimalni deo i ne mogu se zapisati u eksponencijalnim notacijama. Vrednosti u pokretnom zarezu su celi brojevi sa decimalnim delom. Mogu se izraziti u eskponencijalnoj notaciji. Broj koji počinje sa 0 i sadrži decimalnu tačku se tumači kao broj u pokretnom zarezu, a ne kao oktalni literal. Specifičnost brojeva u pokretnom zarezu je to što mogu predstavljati posebne numeričke vrednosti. To su:

  • NaN (Not a number) - Numerička vrednost dodeljena pri vršenju matematičke operacije nad neadekvatnim podacima, kao što su stringovi.
  • Infinity - Numerička vrednost koja ukazuje da vrednost promenljive prelazi dozvoljene granice.
  • Pozitivna i Negativna 0 - Numeričke vrednosti koje JScript razlikuje u određenim situacijama.

Stringovi[uredi | uredi izvor]

Vrednost stringa je lanac od nula ili više Unicode znakova (slova, cifre i znakovi interpunkcije). Pomenuti tip podatka reprezentuje tekst u JScript-u. Da bi promenljiva bila prepoznata kao string, neophodno je staviti vrednost u odgovarajuće parove pojedinačnih ili dvostrukih navodnika. Dvostruki navodnici mogu biti sadržani u nizovima okruženim jednim navodnicima, dok pojedini znakovi mogu biti sadržani u nizovima okruženim dvostrukim navodnicima. Primer stringa: "The earth is round."

Verzije i podrška[uredi | uredi izvor]

JSkript je jezik koji nastavlja da se razvija, i svaka nova verzija uvodi nove karakteristike[8]. Naravno, da bi korisnik mogao da iskoristi kompletan asortiman mogućnosti koje ova skripta pruža, neophodna je kompatibilna verzija skript pokretača ili kompilatora. Danas veliki broj pretraživača podržava određenu verziju jskript jezika.

  • Internet Explorer 6-7 podržava verziju JSkript 5 (ekvivalentno ECMAScript 3, tj. JavaScript 1.5)
  • Internet Explorer 8 podržava verziju JSkript 6 (ekvivalentno ECMAScript 3, tj. JavaScript 1.5, sa više popravljenih bagova)
  • Firefox 1.0 podržava verziju JavaScript 1.5 (ECMAScript 3 ekvivalent)
  • Firefox 1.5 podržava verziju JavaScript 1.6 (JavaScript 1.5 + Nizovi dodatak + E4X[9])
  • Firefox 2.0 podržava verziju JavaScript 1.7 (JavaScript 1.6 + Generator + Iteracije)
  • Firefox 3.0 podržava verziju JavaScript 1.8 (JavaScript 1.7 + Generator Expressions + Expression Closures)
  • Opera podržava skripte ekvivalentne sa ECMAScript 3 + Getters and Setters[10]
  • Safari podržava skripte ekvivalentne sa ECMAScript 3 + Getters and Setters[10].[11]

Reference[uredi | uredi izvor]

  1. ^ Douglas Crockford, The JavaScript Programming Language
  2. ^ "Conditional Compilation" Pristupljeno 29.11.2017.
  3. ^ "Wath's the difference between JavaScript and JScript?" Pristupljeno 26.11.2017.
  4. ^ "Program with DOM in JScript" Pristupljeno 28.11.2017.
  5. ^ "JScript Data Type" Posećeno 29.11.2017.
  6. ^ "Instrinsic Objects" Pristupljeno 29.11.2017.
  7. ^ "Introduction to Regular Expressions" Pristupljeno 29.11.2017.
  8. ^ "Feature Information" Pristupljeno 29.11.2017.
  9. ^ ECMAScript za XML
  10. ^ a b Mutatori
  11. ^ [1] Pristupljeno 28.11.2017.

Spoljašnje veze[uredi | uredi izvor]