View on GitHub

info

Материјали за курс из УВИТ-а на Математичком факултету Универзитета у Београду

УВИТ - Програмски језик ЈаваСкрипт

Владимир Филиповић

Историјат и верзије језика ЈаваСкрипт

Настанак ЈаваСкрипта

Године 1993, Национални центар за суперрачунарске апликације (енгл. National Center for Supercomputing Applications - NCSA), део Универзитета у Илиноису, објавио је Mosaic, први популарни графички прегледач веба, који је одиграо значајну улогу у развоју веба у то време.

Године 1994. године у граду Маунтин Вју, у Калифорнији, основана је компанија под називом Mosaic Communcations, која је запослила већину аутора оригиналног Mosaic веб прегледача, како би развили нови прегледач, који ће заменити Mosaic. Прва верзија тог новог прегледача, Mosaic Netscape 0.9, објављена је крајем 1994. године. За само четири месеца овај веб прегледач је већ заузео три четвртине тржишта и постао је најпопуларнији веб прегледач деведесетих година XX века. Како би избегли проблеме са ауторским правима са NCSA, веб прегледач је исте године добио нов назив, Netscape Navigator, a компанија се назвала Netscape Communications.

У компанији Netscape су на време схватили да би Веб требало да постане динамичнији. Оснивач компаније, Марк Андресен, тврдио је да HTMLјезику за означавање треба пратећи програмски језик који веб дизајнери и програмери могу лако да користе за склапање компоненти као што су слике и додаци, чији би се код писао директно у HTML коду веб странице. Како би уопште започели са радом, компанија Netscape Communications је морала да сарађује са компанијом Sun Microsystems да би у свај прегледач уградили њихов статични програмски језик Јаву и тиме се борили са конкурентском компанијом Microsoft за већу наклоност корисника и за усвајање веб технологија и платформи.

Одлучено је да се креира програмски језик комплементаран Јави, са сличном синтаксом, што је у старту значило одбацивање подршке за друге програмске језике као што су Перл, Пајтон, TCL или Scheme. Како би одбранили идеју ЈаваСкрипта у односу на понуду конкурената, компаније је био потребан прототип. Програмер Брендон Ајк је написао прототип будућег програмског језика за 10 дана, у мају 1995. године.

Иако је развијан под кодним називом Мока, језик је приликом првог објављивања бета верзијe Netscape Navigator-a, септембра 1995. године званично назван Лајвскрипт. Међутим, језик је убрзо, у децембру исте године, прилоком објављивања Netscape Navigator 2.0 бета 3 верзије, преименован у ЈаваСкрипт.

Верзије језика ЈаваСкрипт

Извршавање и дебагирање ЈаваСкрипт програма

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

Нека се ради о следећем порграму и нека је тај програм смештен у датотеци primer-00.js:

console.log("почетак");
for (let i = 0; i < 7; i++) {
    console.log(i);
}
console.log("крај");

Извршавње у окружењу node.js

Ако је инсталирано окружење node.js онда се програм може покренути из комадног промпта, наредбом:

node primer-00.js

Резултат извршавања је приказан на следећој слици:

Извршавање у node.js окружењу

Дебагирање у окружењу node.js коришћењем VS Code

Развојно окружење VS Code, популарно вишеиплатформско окружење за развој доступно као софтвер отвореног кода (енгл. open source software), се може користити за развој програма у различитима прогрмаским језицима, па и у ЈаваСкрипту, као и за дебагирање ЈаваСкрипт програма.

Ово окружење подржава постављање тачака лома (енгл. brеakpoint) на којима се зауставља извршавање, одакле се оно може наставити корак по корак или непрекидно до краја, односно следеће постављене тачке лома. Када је извршавање програма заустављено, окружење допушта да се прочитају вредности променљивих (постоји прозор у ком се аутоматки приказују вредности свих доступних променљивих и прозор у ком се приказују вредности израза које програмер експлицитно дефинише током дебагирања) - што су мање-више могућности које имају и друга модрена развојна окружења.

Дeбагирање помоћу VS Code

На горњој слици се може уочити да је извршавање програма заустављено на тачки лома, да је вредност променљиве i у пвом заустављању 4 и да су на конзоли приказане линије почетак, 0, 1, 2 и 3.

Ако се дебагира ЈаваСкрипт програм са функцијама, дебагер приказује тзв стек позива (енгл. call stack) у ком се види која је функција коју позвала. Стек позива омогућава програмеру да током дебагирања пролази кроз потиве, види на ком је месту у прогрмаском коду из једне функције позвана друга, са којим аргументима и какве ће бити вредности параметара у позваној функцији.

Исто тако, слично осталим модерним и популарним развојним окружењеима, дебагер допушта да, приликом извршавања програмског кода корак по корак, ако наредба садржи позив функције, програмер може бирати да ли ће та наредба извршити одјeдном (енгл. step over) или ће се приликом њеног извршавања “ући” у реализацију функције па извршавање корак по корак наставити унутар позване функције (енгл. trace into).

Извршавње у веб прегледачу

Како се у оквиру веб прегледача приказују веб стране, то је неопходно да се креира HTML страна која ће покретати ЈаваСкрипт програм - прецизније ЈаваСкрипт скрипту. Покретање скрипте се постиже помоћу елемента <script>, као у примеру који следи:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
</head>
<body>
    <!-- Атрибут src елемента <script> се поставља на име јаваскрипт датотеке коју треба извршити -->
    <script src="primer-00.js"></script>
    <p>
        Ако се ништа не догађа, резултати рада скрипте су усписани у конзолу веб прегледача !!!
    </p>
</body>
</html>

Када се покрене веб прегледач, скрипта ће бити извршена и резултат њеног рада оже да се види у конзоли веб прегледача, као на слици која следи.

Извршавање у веб прегледачу

Дебагирање у веб прегледачу

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

Дебагирање у веб прегледачу

На горњој слици се може уочити да је извршавање програма заустављено на тачки лома, да је вредност променљиве i у пвом заустављању 4 и да су на конзоли приказане линије почетак, 0, 1, 2 и 3.

Са слике се јасно види да су приликом дебагирања у прегледачу програмеру на располагању исте већ описане функционалности које постоје код дебагирања у окружењу node.js.

Стилови кŏдирања

Стил кŏдирања за ЈаваСкрипт у ствари представља скуп конвенција које се користе при писању ЈаваСкрипт програма.

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

Чак и ако је тим једночлан, опет се стил кŏдирања може посматрати као споразум који програмер склапа сам са собом, како би програмски кŏд био у складу са сопственим програмеровим стандардима.

Постојање фиксних правила за форматирање програмског кŏда умногоме помаже да кŏд буде читљивији и лакши за одржавање.

Популарни стилови кŏдирања

Поред многобројних постојећих, у овом тренутку су најпопуларнији стилови кŏдирања описани са следећа два документа:

Уколико се ради на тимском пројекту, добра је пракса да се стил кŏдирања усагласи на почетку и да се усаглашени документ постави тако да у сваком тренутку буде доступан свим члановима тима.

Конвенције кŏдирања које ће бити коришћене у оквиру овог курса

Напомена. Ако радни оквир који се користи или већ усвојени стандард кŏдирањњ садржи другачуја правила, онда се треба њима прилагодити. Један од популарних алата који олакшава сређивање и форматирање програмског кода је Prettier.

Литература

  1. Haverbeke M.: Eloquent JavaScript

  2. JavaScript - Mozzila Developer Network (MDN)

  3. Живановић, Д.: Веб програмирање - ЈаваСкрипт

  4. Copes F.: Complete JavaScript Handbook