Јаваскрипт

Из Википедије, слободне енциклопедије
Не поистовећивати са Јава (програмски језик).
ЈаваСкрипт
JavaScript-logo.png
Лого програмског језика ЈаваСкрипт
Оригинални назив енгл. JavaScript
Изговара се ЏаваСкрипт или ЈаваСкрипт
Модел скриптни, објектно-оријентисани (прототипни), императивни, функционални и вођен догађајима
Појавио се 4. децембар 1995. год.; пре 21 године (1995-12-04)[1]
Аутор(и) Брендан Ајк
Дизајнер(и) Нетскејп, Мозила Фондација, Ecma International
Актуелна верзија ECMAScript 2016[2]
Датум актуелне верзије 17. јун 2016. год.; пре 9 месеци (2016-06-17)
Систем куцања динамичко
Имплементације V8, ЈаваСкриптКор, SpiderMonkey, Chakra
Утицаји Луа, Scheme, Перл, Селф, Јава, Це, Пајтон, AWK, HyperTalk
Утицао на ActionScript, AtScript, CoffeeScript, Дарт, JScript .NET, LiveScript, Objective-J, Opa, Перл 6, QML, TypeScript,
Јаваскрипт
Екстензија фајла: .js
Развио: Брендан Ајк
Прво појављивање: 1995.
Тип формата: скриптни језик


ЈаваСкрипт или ЏаваСкрипт (енгл. JavaScript) је динамичан, слабо типизаран и интерпретиран програмски језик високог нивоа. Стандардизован је по ЕКМАСкрипт спецификацији језика. Поред HTML-а и CSS-а, ЈаваСкрипт је једна од три водеће технологије за дефинисање садржаја на Вебу; већина веб-сајтова користи ЈаваСкрипт а сви модерни веб-читачи га подржавају без потребе за инсталирањем додатака. ЈаваСкрипт је језик заснован на прототиповима са функцијама првог реда, што га чини језиком вишеструке парадигме који подржава објектно-оријентисани,[3] императивни и функционални начин програмирања. Садржи АПИ за рад са текстом, низовима, датумима и регуларним изразима, али не и улазно/излазне функционалности, као што су повезивање, складиштење података или графичке функционалности, за шта се ослања на окружење у коме се извршава.

Иако се на први поглед може рећи да ЈаваСкрипт има одређене сличности са програмским језиком Јава, као што су назив, синтакса и стандардне библиотеке, они су два потпуно различита програмска језика која се значајно разликују у свом дизајну. На програмски језик ЈаваСкрипт највише су утицали језици као што су Селф и Scheme.[4]

ЈаваСкрипт се поред Веба користи и у другим окружењима, као што су PDF документи, Веб-читачи за специфичне веб-сајтове (енгл. site-specific browsers) и десктоп виџети (енгл. widget). Нове и знатно брже ЈаваСкрипт виртуелне машине и платформе засноване на њима, популаризовале су ЈаваСкрипт за израду веб апликација на серверској страни. На клијентској страни, програмери најчешће имплементирају ЈаваСкрипт као интерпетирани језик, али све више новијих веб-читача обавља just-in-time компајлирање. ЈаваСкрипт се још користи и за развој видео игара, десктоп и мобилних апликација као и у мрежном програмирању на серверској страни са извршним окружењима као што је Node.js.

Историјат[уреди]

Почеци у Нетскејпу[уреди]

1993. године, Национални центар за суперкомпјутерске апликације (енгл. National Center for Supercomputing Applications - NCSA), који је део Универзитета у Илиноису, објавио је Мозаик, први популарни графички веб-читач, који је одиграо значајну улогу у развоју Веба који је у то време био на самом зачетку. 1994. године у Маунтин Вјуу, у Калифорнији, основана је компанија под називом Мозаик Комјуникејшн, која је запослила већину аутора оригиналног веб-читача Мозаик како би развили Мозаик Нетскејп. Касније ће се испоставити да овај веб-читач неће имати никакве сличности са оригиналним Мозаиком. Интерни назив за овај веб-читач био је "Мозила", што је значило "убица Мозаика" енгл. Mosaic killer, јер је циљ компаније био да замени Мозаик као најпопуларнији веб-читач на свету. Прва верзија веб-читача, Мозаик Нетскејп 0.9, објављена је крајем 1994. године. За само четири месеца овај веб-читач је већ заузео три четвртине тржишта веб-читача и постао је најпопуларнији веб-читач деведесетих година 20. века. Како би избегли проблеме са ауторским правима са НЦСА, веб-читач је исте године добио нов назив, Нетскејп навигатор, a компанија Нетскејп Комјуникејшн.

У овој компанији су на време схватили да би Веб требало да постане динамичнији. Оснивач компаније, Марк Андресен, тврдио је да HTML-у треба пратећи језик који веб дизајнери и програмери могу лако да користе за склапање компоненти као што су слике и додаци, чији би се код писао директно у HTML коду веб странице. Како би уопште започели са радом, компанија Нетскејп Комјуникејшн је морала да сарађује са компанијом Сан Мајкросистемс да би у овај веб-читач уградили њихов статични програмски језик Јаву и тиме се борили са конкурентском компанијом Мајкрософт за већу наклоност корисника и усвајање веб технологија и платформи.[5] Одлучено је да се креира програмски језик комплементаран Јави, са сличном синтаксом, што је у старту значило одбацивање подршке за друге програмске језике као што су Перл, Пајтон, TCL или Scheme. Како би одбранили идеју ЈаваСкрипта у односу на понуду конкурената, компаније је био потребан прототип. Ајк је написао прототип будућег програмског језика за 10 дана, у мају 1995. године.

Иако је развијан под кодним називом Мока, језик је званично назван ЛајвСкрипт приликом првог објављивања бета верзија Нетскејп навигатора 2.0, септембра 1995. године, али је убрзо преименован у ЈаваСкрипт[1] са објављивањем Нетскејп навигатора 2.0 бета 3 верзије, у децембру исте године.[6] Коначан избор имена је изазвао конфузију код корисника јер је створен утисак да је ово још једна варијанта програмског језика Јава, а сам избор имена је окарактерисан као маркетиншки трик Нетскејпа како би се ЈаваСкрипт представио као најновији веб програмски језик.

Често се јавља погрешно тумачење да је на развој ЈаваСкрипта битно утицао веб скриптни језик Ц-- развијен од стране компаније Номбас (овај скриптни језик не треба мешати са касније развијеним језиком Ц--, 1997. године]).[7][8] У прилог томе иде и чињеница да Брендан Ајк није никад чуо за Ц-- пре него што је креирао ЛајвСкрипт.[9] Номбас je обезбеђивао уграђене скриптне веб странице Нетскејпу, иако концепт скриптних веб страница није био нов, као што се може видети у веб-читачу ViolaWWW.[10] Касније је компанија Номбас одлучила да у свом производу СкриптИз, Ц-- замени ЈаваСкриптом и учествовала је у стандардизацији ЕКМАСкрипта кроз ТЦ39 групу.[11]

ЈаваСкрипт на серверској страни[уреди]

У децембру 1995. године, убрзо након објављивања ЈаваСкрипта за веб-читаче, компанија Нетскејп је представила и имплементацију овог језика за сервере кроз Нетскејп Ентерпрајз Сервер (енгл. Netscape Enterprise Server).

Од средине 2000-их, објављено је неколико серверских ЈаваСкрипт имплементација, међу којима најпознатији Node.js (2009. године).[12]

Прихватање ЈаваСкрипта од стране Мајкрософта[уреди]

Мајкрософт је 1996. године представио своје скриптне језике, ВБСкрипт и ЈСкрипт. ЈСкрипт, обрнута имплементација Нетскејповог ЈаваСкрипта, била је део Интернет Експлорера 3. ЈСкрипт је такође био доступан и као серверска имплементација скриптног језика у Интернет Информационом Серверу. Интернет Експлорер 3 је по први пут донео подршку за CSS и различите HTML додатке, али се водило рачуна о томе да свака имплементација буде значајно различита од оне у Нетскејп навигатору.[13][14] Ове разлике су отежавале дизајнерима и програмерима да креирају веб-сајтове који би функционисали у оба веб-читача, што је довело до појаве логоа "најбољи приказ у Нетскејпу" и "најбољи приказ у Интернет Експлореру" који су обележили почетне године борбе међу веб-читачима.[15] ЈаваСкрипт је почео да стиче репутацију препреке вишеплатформском и стандардизованом Вебу. Програмери су се прихватили задатка да покушају да креирају веб-сајтове који ће радити у оба најпознатија веб-читача иако већина није имала времена за то.[13] Објавом Интернет Експлорера 4, Мајкрософт је представио концепт динамичког HTML-а, али су разлике у имплементацији језика и различити власнички објектни модели докумената представљали препреке за ширу примену ЈаваСкрипта на Вебу.[13]

Стандардизација[уреди]

У новембру 1996. године, Нетскејп је стандардизовао ЈаваСкрипт како би остале компаније које развијају веб-читаче могле да га имплементирају у својим производима. То је довело до званичног објављивања спецификације језика ЕКМАСкрипт која је објављена у првој верзији ЕКМА-262 стандарда у јуну 1997. године, чија је најпознатија имплементација управо ЈаваСкрипт. ЕкшнСкрипт и ЈСкрипт су такође познате имплементације ЕКМАСкрипта са додацима.

Процес стандардизације је настављен у циклусима, објављивањем ЕКМАСкрипта 2 у јуну 1998. године, који доноси одређене промене како би се прилагодио ISO/IEC 16262 међународном стандарду. Са објављивањем је настављено у децембру 1999. године са ЕКМАСкриптом 3, који представња основу за ЈаваСкрипт какав данас знамо. Развој оригиналног ЕКМАСкрипта 4, који је водио Валдемар Хорват (тада запослени у Нетскејпу, данас у Гуглу), почео је 2000. године и на самом почетку је изгледало као да Мајкрософт учествује у томе па је чак и имплементирао неке карактеристике у њихов ЈСкрипт .НЕТ језик.

Временом је било јасно да Мајкрософт не намерава да сарађује нити да имплементира ЈаваСкрипт у ИнтернетЕксплореру, иако нису имали достојну алтернативу већ само парцијално завршену имплементацију .НЕТ серверске стране. Због тога је до 2003. године развој ЕКМАСкрипта 4 био запостављен.

Следећа битна година за ЈаваСкрипт била је 2005. са два велика историјска догађаја за развој ЈаваСкрипта. Прво су се Брендан Ајк и Мозила придружили ЕКМА Интернешнал као непрофитни чланови и започет је рад на ЕКМАСкрипту за XML (E4X), ЕКМА-357 стандарду, који је потекао од Мајкрософтових бивших запослених који су сад радили за БЕА Системс. То је довело до заједничког рада са компанијом Макромедија (коју је касније купио Адоби Системс), који су применили E4X у свом ЕкшнСкрипту 3 (ЕкшнСкрипт 3 је био форк оригиналног ЕКМАСкрипта 4).

Заједно са Макромедијом поново је отпочет развој ЕКМАСкрипта 4 са циљем стандардизације компоненти из ЕкшнСкрипта 3. На крају овог процеса, Адоби Системс је објавио ЕкшнСкрипт виртуелну машину верзије 2, кодног назива Тамарин, као пројекат отвореног кода. Међутим, Тамарин и ЕкшнСкрипт 3 су били значајно различити од онога чему ЈаваСкрипт тежи, што су обе стране увиделе током 2007. и 2008. године.

На тржишту је владао хаос међу различитим играчима. Даглас Крокфорд, тада запослени у Јаху-у, удружио се са Мајкрософтом 2007. године како би се супротставио ЕКМАСкрипт 4 стандарду, што је довело до развоја ЕКМАСкрипт 3.1 стандарда. Иако развој ЕКМАСкрипт 4 стандарда никад није довршен, он је битно утицао на наредне верзије.[16]

Док се све ово дешавало, заједнице отвореног кода и програмера су наставиле на развоју револуционарних могућности са ЈаваСкриптом. Напор заједнице је добио замајац 2005. године када је Џеси Џејмс Гарет осмислио концепт Ајакса и описао скуп технологија, где је ослонац био на ЈаваСкрипту, које се користе за креирање веб апликација код којих се подаци могу учитавати у позадини, без потребе да се цела страница учита, што је довело до развоја још динамичнијих апликација. Све ово је довело до периода препорода у коришћењу ЈаваСкрипта, предвођеног библиотекама отвореног кода и заједницама које су се формирале око њих, са библиотекама као што су Прототајп, џејКвери, Доџо Тулкит, МуТулс и друге.

У јулу 2008. године, раздвојене стране су се састале у Ослу. То је довело до евентуалног договора почетком 2009. године, да се ЕКМАСкрипт 3.1 стандард преименује у ЕКМАСкрипт 5 и да се језик унапреди пратећи агенду познатију као Хармони (енгл. Harmony). ЕКМАСкрипт 5 је коначно објављен у децембру 2009. године.

У јуну 2011. године, ЕКМАСкрипт 5.1 је објављен како би се у потпуности изједначио са трећим издањем ISO/IEC 16262 међународног стандарда. ЕКМАСкрипт 2015 је објављен у јуну 2015. године. Тренутна верзија ЕКМАСкрипт 2016 је објављена у јуну 2016. године.[17]

Каснији развој[уреди]

ЈаваСкрипт је постао један од најпопуларнијих програмских језика на Вебу. Међутим, на самом почетку језик није био на добром гласу међу програмерима професионалцима, због тога што су му, између осталог, циљна публика били веб аутори и остали "аматери".[18] Са појавом Ајакса ЈаваСкрипт се враћа у центар пажње и постаје атрактиван за све више програмера. Резултат тога је умножавање обимних фрејмворка и библиотека, побољшана ЈаваСкрипт рутина програмирања и повећано коришћење ЈаваСкрипта изван веб-читача, што је у директној корелацији са значајним развојем серверских ЈаваСкрипт платформи.

У јануару 2009. године, представљен је пројекат КомонЈС (енгл. CommonJS) са циљем стандардизације заједничких библиотека, углавном за ЈаваСкрипт развој изван веб-читача.[19]

Са порастом једностраничних апликација и напредних ЈаваСкрипт сајтова, повећано је његово коришћење од стране компајлера како за динамичке тако и за статичке програмске језике.

Заштитни знак[уреди]

"ЈаваСкрипт" је заштитни знак Оракл Корпорације.[20] Корити се под лиценцом за технологију коју је осмислила и имплементирала компанија Нетскејп Комјуникејшн и њени наследници као што је Мозила фондација.[21]

Карактеристике[уреди]

Структура програмског језика Јаваскрипт је веома слична структури програмског језика C (for петља, while петља, if исказ...). Један делимичан изузетак су типови променљивих. У Јаваскрипт-у свака променљива се иницијализује са кључном речи var. Као и C, Јаваскрипт прави разлику између исказа и израза. Још једна битна разлика у односу на C је и аутоматско уметање краја наредбе односно карактера тачка-зарез. Дакле, у Јаваскрипт-у није потребно експлицитно наглашавати крај наредбе са знаком тачка-зарез. Јаваскрипт је слабо типизиран језик. То значи да уколико имамо неку променљиву која је везана за број, та иста променљива касније може бити везана за стринг.[22]

Јаваскрипт је објектно заснован скриптни језик. Укључујемо га у интернет страницу да би је учинили динамичнијом. Јаваскрипт је скриптни језик јер се састоји од серије команди које се очитавају у интерпретеру а да се претходно не компајлира садржај. Односно не преводи се у машински (бинарни код 1 и 0) из кога никада нећемо сазнати оригинални језик, него се команде директно читају из кода. Због ове карактеристике, Јаваскрипт се извршава на страни корисника, тј. на рачунару на којем је покренут садржај са Јаваскрипт кодом. Сам по себи, HTML дозвољава посетиоцу да пошаље податке ка серверу на обраду. Нажалост, ако ти подаци нису валидни цео процес се мора поновити све док се не унесу валидни подаци. Ово је један од основних разлога настанка Јаваскрипт-а који проверава веродостојност података на клијентовом претраживачу.[23]

Синтакса[уреди]

Једноставнији примери[уреди]

Променљиве се у Јаваскрипт-у дефинишу са кључном речи var. [24]

var x; // дефиниција променљиве x. Почетна вредност ове променљиве је недефинисана (eng. undefined). 
var y = 2; // дефиниција променљиве y и додела вредности 2.

Коментари се у Јаваскрипт-у пишу на следећи на следећи начин.

// кратак коментар у једној линији.
/*
     Дугачак, документацијски коментар.
     Написан у више линија.
*/
/*Коментар /* не сме бити угњежден. */Ово је синтаксна грешка*/

За испис текста на екрану, користи се објекат конзоле. У примеру је дато исписивање текста Здраво Свете.

console.log("Zdravo Svete.");

Искази if, else и else if [23]

// if исказ се користи ради активирања одређених наредби ако је одређени услов задовољен.

function funkcija4(){
  var boja = prompt("Koju boju najviše voliš?")
  if (boja == "rozu") {
       alert("Verovatno si žensko");
      }
  }
// else исказ се извршава онда када if услов није задовољен.

function funkcija2() {
  var broj = prompt("Unesite bilo koji broj!")
    if (broj <= 10) {
            alert("Uneli ste broj manji od 10");
        }
    else alert("Uneli ste broj veći od 10") 
    }
// else if исказ је веома користан јер дозвољава да се наведе више од једног услова.

var visitor= "";
if (visitor == "Drago" {
document.write("Pozdrav Drado...");
}
 else if (visitor == "Miloje") {
      document.write("Pozdrav Miloje...");
} 
else if(visitor == "Laki") {
      document.write("Pozdrav Laki...");
} 
else {
      document.write("Pozdrav posetioče...");
}

Једноставна рекурзивна функција која рачуна факторијел.

function factorial(n) {
    if (n == 0) {
        return 1;
    }
    return n*factorial(n - 1);
}

Пример анонимне функције

var displayClosure = function() {
    var count = 0;
    return function () {
        return ++count;
    };
}
var inc = displayClosure();
inc(); // враћа 1
inc(); // враћа 2
inc(); // враћа 3

Напреднији пример[уреди]

Овај узорак кода приказује разне Јаваскрипт функције.

function LCMCalculator(x, y) {
    var checkInt = function (x) {
        if (x % 1 !== 0) {
            throw new TypeError(x + " is not an integer");
        }
        return x;
    };
    this.a = checkInt(x)
    this.b = checkInt(y);
}
LCMCalculator.prototype = {
    constructor: LCMCalculator,
    gcd: function () { 
        var a = Math.abs(this.a), b = Math.abs(this.b), t;
        if (a < b) {
            t = b;
            b = a;
            a = t;
        }
        while (b !== 0) {
            t = b;
            b = a % b;
            a = t;
        }
        this['gcd'] = function () {
            return a;
        };
        return a;
    },
    lcm : function () {
        var lcm = this.a/this.gcd()*this.b;
        this.lcm = function () {
            return lcm;
        };
        return lcm;
    },
    toString: function () {
        return "LCMCalculator: a = " + this.a + ", b = " + this.b;
    }
};
function output(x) {
    document.body.appendChild(document.createTextNode(x));
    document.body.appendChild(document.createElement('br'));
}

[[25, 55], [21, 56], [22, 58], [28, 56]].map(function (pair) {
    return new LCMCalculator(pair[0], pair[1]);
}).sort(function (a, b) {
    return a.lcm() - b.lcm();
}).forEach(function (obj) {
    output(obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm());
});

Употреба у интернет страницама[уреди]

Најчешћа употреба Јаваскрипт-а је додавање динамичности HTML страницама на клијентској страни. Скрипте се укључују у HTML странице и врше интеракцију са објектним моделом докумената (енгл. Document Object Model). Неки од примера употребе Јаваскрипт-а су:

  • Учитавање одређеног дела странице или достављање података серверу преко АЈАКСА (engl. AJAX) без поновног освежавања целе странице (на пример друштвена мрежа вам омогућава ажурирање новог статуса без освежавања целе странице).
  • Анимирање елемената на страници, чинећи их видљивим и невидљивим, мења елементима величину, помера њихов садржај.
  • Убацивање интерактивног садржаја (на пример видео клипова, анимација, видео игрица, аудио садржаја...)
  • Валидација унетог садржаја унутар форми, како би били сигурни да су исправни подаци послати серверу.

Интернет претраживач је најчешће окружење за извршавање Јаваскрипт кода. Интернет претраживачи обично креирају хост објекте за представљање објектног модела докумената у Јаваскрипт-у. Поред интернет претраживача, Јаваскрипт код се може извршити и на серверу.[25]

Једноставна скрипта[уреди]

Испод је минималистички пример интернет странице која користи Јаваскрипт и објектни модел докумената.

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>Minimal Example</title>
<body>
<h1 id="header">Ovo je Javaskript</h1>

<script>
    document.body.appendChild(document.createTextNode('Zdravo Svete!'));

    var h1 = document.getElementById('header');
    h1 = document.getElementsByTagName('h1')[0];
</script>

<noscript>Vaš pretraživač ne podržava Javaskript ili je trnutno isključen.</noscript>
</body>
</html>

Компатибилност[уреди]

С обзиром да ЈаваСкрипт код може да се изврши у различитим окружењима, важан део тестирања кода је и провера да ли Јаваскрипт код ради на више различитих претраживача.

Интерфејс објектног модела докумената за манипулацију са интернет страницама није део Екмаскрипт стандарда односно самог Јаваскрипт-а, већ је дефинисан посебним стандардом. У пракси, имплементација интернет претраживача се разликује у стандардима, и самим тим не извршава сваки претраживач Јаваскрипт код исто.

Да би се ове разлике анулирале, Јаваскрипт програмери могу да покушају да напишу код који ће се у већини претраживача извршавати исто. Ако се не изврши, могуће је написати код који проверава присуство одређених вункција претраживача.[26] У неким случајевим, два претраживача могу извршити исту функцију али са различитим исходом. Тако да програмер може практично открити шта претраживач ради и сходно томе изменити своју скрипту како би је претраживач извршио на одговарајући начин.[27][28]

Осим тога, скрипте не могу да раде за одређене кориснике. На пример корисник може да:

  • Користи стари или редак интернет претраживач са непотпуном или необичном подршком за објектни модел докумената.
  • Користи ПДА (engl. personal digital assistant) или претраживач на мобилном телефону који не може да изврши Јаваскрипт код.
  • Да има онемогућено извршавање Јаваскрипт-а као меру предострожности.

Како би помогли овим корисницима, програмери могу да направе интернет странице које деградирају претраживаче да не користе Јаваскрипт. Конкретно, страна би требала остане употребљива без додатних елемената Јаваскрипт-а. Алтернативни приступ решавању овог проблема јесте да први аутор садржаја користи основне технологије које раде у свим претраживачима, а затим побољша садржај намењен корисницима који подржавају Јаваскрипт. Ово је познато као прогресивно побољшање.

Историјат верзија[уреди]

Следећа табела се заснива на информацијама из више извора.[29][30][31]

Верзија Датум Еквивалентно са Нетскејп
Навигатор
Мозила
Фајерфокс
Интернет
Експлорер
Опера Сафари Гугл
Хром
1.0 Март 1996 2.0 3.0
1.1 Август 1996 3.0
1.2 Јун 1997 4.0-4.05 3[32]
1.3 Октобар 1998 ЕКМА (енгл. ECMA)-262 1. + 2. издање 4.06-4.7x 4.0 5[33]
1.4 Нетскејп
Сервер
6
1.5 Новембар 2000 ЕЦМА-262 3. издање 6.0 1.0 5.5 (JScript 5.5),
6 (JScript 5.6),
7 (JScript 5.7),
8 (JScript 5.8)
7.0 3.0-5 1.0-10.0.666
1.6 Новембар 2005 1.5 + додаци низовима + генератори низова и стрингова + E4X 1.5
1.7 Октобар 2006 1.6 + пајтон генератори + итератори + дозволе 2.0 28.0.1500.95
1.8 Јун 2008 1.7 + генератори израза + затварачи израза 3.0 11.50
1.8.1 1.8 + подршка за Џејсон(енгл. JSON) + мањи додаци 3.5
1.8.2 Јун 22, 2009 1.8.1 + мањи додаци 3.6

Референце[уреди]

  1. 1,0 1,1 Press release announcing JavaScript, "Netscape and Sun announce JavaScript", PR Newswire, December 4, 1995
  2. „Standard ECMA-262”. Ecma International. 2015-06-17. 
  3. „ECMAScript Language Specification” (PDF). 
  4. „ECMAScript Language Overview” (PDF). 2007-10-23. стр. 4. Приступљено 2009-05-03. 
  5. Severance, Charles (February 2012). „JavaScript: Designing a Language in 10 Days”. Computer. IEEE Computer Society. 45 (2): 7—8. doi:10.1109/MC.2012.57. Приступљено 23 March 2013. 
  6. „TechVision: Innovators of the Net: Brendan Eich and JavaScript”. web.archive.org. Архивирано из оригинала на датум 2008-02-08. 
  7. „The History of Programming Languages”. oreilly.com. O'Reilly Media. 2004. Приступљено 16 July 2016. 
  8. „What Is JavaScript?” (PDF). wiley.com. Wiley. Приступљено 16 July 2016. 
  9. Noorda, Brent (21 September 2013). „Brent Noorda's Answers on ECMA”. quora.com. Приступљено 16 July 2016. 
  10. Noorda, Brent (24 June 2010). „History of Nombas”. brent-noorda.com. Приступљено 16 July 2016. 
  11. Eich, Brendan (21 June 2011). „New JavaScript Engine Module Owner”. brendaneich.com. Приступљено 16 July 2016. 
  12. Netscape Communications Corporation (11 December 1998). „Server-Side JavaScript Guide”. oracle.com. Netscape Communications Corporation. Приступљено 2016-07-16. 
  13. 13,0 13,1 13,2 Champeon, Steve (6 April 2001). „JavaScript, How Did We Get Here?”. oreilly.com. Приступљено 16 July 2016. 
  14. „Microsoft Internet Explorer 3.0 Beta Now Available”. microsoft.com. Microsoft. 29 May 1996. Приступљено 16 July 2016. 
  15. McCracken, Harry (16 September 2010). „The Unwelcome Return of "Best Viewed with Internet Explorer". technologizer.com. Приступљено 16 July 2016. 
  16. „Documentation”. ecmascript.org. Приступљено 16 July 2016. 
  17. „Standard ECMA-262, ECMAScript® 2016 Language Specification”. ecma-international.org. June 2016. Приступљено 16 July 2016. 
  18. Crockford, Douglas (2001). „JavaScript, The World's Most Misunderstood Programming Language”. crockford.com. Приступљено 16 July 2016. 
  19. Kowal, Kris (1 December 2009). „CommonJS Effort Sets JavaScript on Path for World Domination”. arstechnica.com. Приступљено 16 July 2016. 
  20. „USPTO Copyright entry #75026640”. USPTO. 
  21. „Sun Trademarks”. Sun Microsystems. Архивирано из оригинала на датум 28 May 2010. Приступљено 2007-11-08. 
  22. Flanagan (2006). стр. 16.
  23. 23,0 23,1 „Uvod u Javaskript”. znanje.org. Приступљено 30. 4. 2016. 
  24. „var – JavaScript – MDN”. The Mozilla Developer Network. Приступљено 30. 4. 2016. 
  25. „JavaScript tracking – Piwik”. Piwik. Приступљено 30. 4. 2016. 
  26. Peter-Paul Koch, Object detection
  27. Peter-Paul Koch, Mission Impossible – mouse position
  28. Peter-Paul Koch, Browser detect
  29. „JavaScript – JScript – ECMAScript version history”. Webmasterworld.com. Приступљено 30. 4. 2016. 
  30. Resig, John. „Versions of JavaScript”. Ejohn.org. Приступљено 30. 4. 2016. 
  31. „Version Information (JScript)”. Msdn.microsoft.com. Приступљено 30. 4. 2016. 
  32. „History of the Opera web browser”. www.opera.com. Приступљено 30. 4. 2016. 
  33. „What Version of JavaScript”. 

Спољашње везе[уреди]