ЈСкрипт
ЈСкрипт | |
---|---|
Оригинални назив | енгл. JScript |
Модел | скриптни језик |
Појавио се | 1996. |
Аутор(и) | Microsoft |
Утицаји | JavaScript |
ЈСкрипт (енгл. JScript) је дијалект ECMAScript спецификације језика креиран од стране Microsoft-a. Представља интерпретиран, објектно-оријентисан скрипт језик. ЈСкрипт је прво био подржан од стране Internet Explorer 3 претраживача у августу 1996. године. Његова најновија верзија је Јскрипт 9.0 у оквиру Internet Explorer 9. ЈСкрипт 10.0 је издвојени дијалект, познат као JScript.NET, који уводи разне нове могућности из напуштеног четвртог издања ECMAScript стандарда. Мора бити компајлиран за .NETFramework верзију 2 или верзију 4.
Поређење са ЈаvaScript-ом
[уреди | уреди извор]Многи сматрају да је JСкрипт псеудоним за JavaScript или одређену верзију исте[1]. Представљају различите скрипт језике, али током њиховог развоја разлике су сведене на минимум. Заправо, ЈСкрипт је настао као последица заобилажења проблема заштитног знака који је у датом моменту имала корпорација Sun Microsystems над JavaScript језиком. Једна од кључних разлика између поменутих језика јесте што JСкрипт подржава условну компилацију, која омогућава програмеру да селективно извршава код у оквиру блок коментара[2]. Ово је додатак ECMAScript стандарду који није подржан у другим имплементацијама ЈаvaScript-а. Наиме након увођења ECMAScript спецификације постоји веома мала разлика измећу две поменуте скрипте ��ади омогућавања компатибилности истог кода у различитим веб претраживачима, као и постојећа разлика у верзијама.[3]
Историјат
[уреди | уреди извор]Иницијално Netscape 2 је био једини претраживач са подршком за скриптован језик, који се звао LiveScript. Име му је промењено у JavaScript ради публицитета који је Java програмски језик добијао у то време. Microsoft у покушају да придобије део тржишта, који је тренутно имао Netscape, са Internet Explorerом 3 уводи два скрипт језика: VBScript (заснован на Visual Basic језику) и клон JavaScript језика који је назван ЈСкрипт. Кроз историју, Internet Explorer је имао исти део тржишта као и Netscape, па је било потребно увести решење проблема тадашње превелике некомпатибилности између ова два скрипт језика. Као резолуцију проблема Netscape је предао контролу над језиком JavaScript European Computer Manufacturer Association(ECMA) који су формализовали стандард као ECMAScript. Тада је започета и формализација Document Object Model(DOM) који је до тад дозвољавао скрип�� језицима да добију потпуну контролу над садржајем на страници. Пре његове имплеметације Internet Explorer и Netscape су имали своје верзије DOM-а, Microsoft-ова је била [document.all]. ECMAScript и универзални DOM су малтене отклонили скоро све разлике ЈСкрипт и JavaScript. Иако и даље постоји пар разлика, могуће је написати функционалан код који ће преко Internet Explorer-а бити покретан као ЈСкрипт, а преко осталих као JavaScript уз минималан број модификација[4].
Особине
[уреди | уреди извор]ЈСкрипт је имплементиран као Active Scripting покретач. Ово значи да се може "укључити" у OLEAutomation апликације које подржавају Active Scripting, као што су Internet Explorer, Active Server Pages и Windows Script Host. То такође значи да те апликације могу да користе многобројне Active Scripting језике, на пример Јскрипт, VBScript или PerlScript. ЈСкрипт је веома моћан за своје намене, није сажета верзија нити поједностављење неког другог језика (иако је индиректно повезан са програмским језиком Java). Међутим, овај језик има одређена ограничења. У њему се не могу писати самосталне апликације и нема уграђену подршку за читање и писање фајлова. Штавише, скриптови написани у ЈСкрипт-у се могу покренути само уз присутво интерпретера, или "хост-а" као што је АSP(Active Server Pages) , Internet Explorera-а или Windows Script Host-а. ЈСкрипт није строго типизиран језик, што значи да се типови података и променљиве не морају екплицитно декларисати, а ЈСкрипт у многим случајевима сам врши конверзију уколико постоји потреба. По питању типова променљивих, међу основним се подразумевају String, Number, Boolean, Array, Object[5]. Укључује и подршку за рад са датумима, тригонометријским функцијама[6] и регуларним изразима[7]. Насупрот класама уведен је појам прототипова. Објекат се може дефинисати креирањем функције конструктора. ЈСкрипт укључује скоро све карактеристике из NETFramework-ове библиотеке класа.
Низови
[уреди | уреди извор]Низ литерала може иницијализовати низ у JScript-u. Низ литерала, који представља објекат JScript Array, приказан је листом у којој су елементи одвојени зарезом, а која је окружена паром угластих заграда ([]). Сваки елемент листе може бити или важећи JScript израз или празан. Индексни број првог елемента у низу литералних листи је нула, док сваки следећи елемент на листи одговара следећем елементу у низу. Следећи пример приказује иницијализацију променљиве х као низ са три елемента: var x = [1,2,3];
Логички тип
[уреди | уреди извор]Док нумерички типови података и низови могу имати готово неограничен број различитих вредности, логички тип података (boolean) може имати само два: тачно и нетачно (True and False). Логичка вредност изражава валидност неког стања тј. говори да ли је дати услов тачан или нетачан. За разлику од програмских језика попут C-а, где су наредбе гранања и петље услов сматрали нетачним уколико има вредност 0, JScript користи логичке вредности.
Нумерички типови
[уреди | уреди извор]Избор између два типа нумеричких података у Jscript-u, целобројних и бројева са покретним зарезом зависи од посебних околности у којима се користе. Међу целе бројеве спадају позитивни, негативни цели бројеви и нула. Они могу бити заступљени у основи 10 (декадни), основи 8 (октални) и основи 16 (хексадекадни). Већина бројева у Jscript-u пише се у декадној основи, међутим уколико постоји потреба за другом основом, окталне бројеве префискујемо са водећом 0. Број са водећом нулом који не садржи цифре 0 - 7 тумачи се као децимални број. Хексадекадни бројеви се означавају водећим "0k" и могу садржати цифре од 0 до 9 као и слова од А до F која представљају цифре од 10 до 15 у основи 10. Према томе 0kF би било еквивалент броју 15, а 0k10 броју 16. Октални и хексадекадни бројеви не могу имати децимални део и не могу се записати у експоненцијалним нотацијама. Вредности у покретном зарезу су цели бројеви са децималним делом. Могу се изразити у ескпоненцијалној нотацији. Број који почиње са 0 и садржи децималну тачку се тумачи као број у покретном зарезу, а не као октални литерал. Специфичност бројева у покретном зарезу је то што могу представљати посебне нумеричке вредности. То су:
- NaN (Not a number) - Нумеричка вредност додељена при вршењу математичке операције над неадекватним подацима, као што су стрингови.
- Infinity - Нумеричка вредност која указује да вредност променљиве прелази дозвољене границе.
- Позитивна i Негативна 0 - Нумеричке вредности које JScript разликује у одређеним ситуацијама.
Стрингови
[уреди | уреди извор]Вредност стринга је ланац од нула или више Unicode знакова (слова, цифре и знакови интерпункције). Поменути тип податка репрезентује текст у JScript-у. Да би променљива била препозната као стринг, неопходно је ставити вредност у одговарајуће парове појединачних или двоструких наводника. Двоструки наводници могу бити садржани у низовима окруженим једним наводницима, док поједини знакови могу бити садржани у низовима окруженим двоструким наводницима. Пример стринга: "The earth is round."
Верзије и подршка
[уреди | уреди извор]ЈСкрипт је језик који наставља да се развија, и свака нова верзија уводи нове карактеристике[8]. Наравно, да би корисник могао да искористи комплетан асортиман могућности које ова скрипта пружа, неопходна је компатибилна верзија скрипт покретача или компилатора. Данас велики број претраживача подржава одређену верзију јскрипт језика.
- Internet Explorer 6-7 подржава верзију ЈСкрипт 5 (еквивалентно ECMAScript 3, тј. JavaScript 1.5)
- Internet Explorer 8 подржава верзију ЈСкрипт 6 (еквивалентно ECMAScript 3, тј. JavaScript 1.5, са више поправљених багова)
- Firefox 1.0 подржава верзију JavaScript 1.5 (ECMAScript 3 еквивалент)
- Firefox 1.5 подржава верзију JavaScript 1.6 (JavaScript 1.5 + Низови додатак + E4X[9])
- Firefox 2.0 подржава верзију JavaScript 1.7 (JavaScript 1.6 + Генератор + Итерације)
- Firefox 3.0 подржава верзију JavaScript 1.8 (JavaScript 1.7 + Generator Expressions + Expression Closures)
- Opera подржава скрипте еквивалентне са ECMAScript 3 + Getters and Setters[10]
- Safari подржава скрипте еквивалентне са ECMAScript 3 + Getters and Setters[10].[11]
Референце
[уреди | уреди извор]- ^ Douglas Crockford, The JavaScript Programming Language
- ^ "Conditional Compilation" Приступљено 29.11.2017.
- ^ "Wath's the difference between JavaScript and JScript?" Приступљено 26.11.2017.
- ^ "Program with DOM in JScript" Приступљено 28.11.2017.
- ^ "JScript Data Type" Посећено 29.11.2017.
- ^ "Instrinsic Objects" Приступљено 29.11.2017.
- ^ "Introduction to Regular Expressions" Приступљено 29.11.2017.
- ^ "Feature Information" Приступљено 29.11.2017.
- ^ ECMAScript за XML
- ^ а б Мутатори
- ^ [1] Приступљено 28.11.2017.