javascript

=**Содржина: **=


 * Вовед **
 * Вашата прва JavaScript скрипта **
 * Овозможување/оневозможување на JavaScript во веб прелистувач **
 * Internet Explorer 6/7/8/9/10/11
 * Google Chrome (верзија 31)
 * Mozilla Firefox (верзија 26.0)
 * Opera (верзија 17.0)
 * Safari (верзија 5.1.7)
 * Проверка дали е овозможено извршување на JavaScript код на веб прелистувачот **
 * Пренасочување
 * Порака со известување дека за да правилна работа на сајтот мора да е овозможено извршување на JavaScript код на веб пребарувачот
 * Каде може да се пишува JavaScript кодот **
 * Вклучување на надворешна датотека со JavaScript код **
 * Оператори во JavaScript **
 * Аритметички оператори
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Споредбени оператори
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Логички оператори
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Променливи во JavaScript **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Типови на променливи
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Проверка на типот на променлива
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Конверзија на типот на променливата
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Конвенција за именување на променливи
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Функции **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Локални променливи во JavaScript
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Глобални променливи во JavaScript
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Доделување на вредност на недекларирани променливите
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Услови **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">if наредба
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">if … else наредба
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">if … else if … else наредба
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">switch наредба
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Циклуси **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">for циклус
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">for/in циклус
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">while циклус
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">do/while циклус
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Користење на break и continue во циклуси **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">break
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">continue
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Справување со грешки **
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">try/catch
 * <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">throw

 <span style="font-family: 'Times New Roman',serif; font-size: 1.4em; line-height: 1.5;">**Вовед**

<span style="font-family: 'Times New Roman',Times,serif;">По дефиниција, JavaScript е скриптен јазик кој се извршува на клиентска страна. Ова значи дека веб пребарувачите се тие кои ја извршуваат скриптата. Спротивно од извршување на клиенска страна е извршување на серверска страна, кое се јавува кај програмските јазици како: PHP, Java, Python итн. Програмскиот код од овие јазици се извршува од страна на серверот на кој е хостиран веб сајтот.

<span style="font-family: 'Times New Roman',Times,serif;"> JavaScript јазикот може да се користи како за позитивни, така и за негативни цели. Подолу се наведени најчестите работи за кои се користи JavaScript.
 * <span style="font-family: 'Times New Roman',Times,serif;">Часовници
 * <span style="font-family: 'Times New Roman',Times,serif;">Анимиции кои се движат заедно со движењето на курсорот
 * <span style="font-family: 'Times New Roman',Times,serif;">Менија на веб сајтови
 * <span style="font-family: 'Times New Roman',Times,serif;">Процорци со пораки
 * <span style="font-family: 'Times New Roman',Times,serif;">Валидација на HTML форма на клиенска страна

<span style="font-family: 'Times New Roman',Times,serif;"> При пишување на JavaScript код, многу работи можат да тргнат наопаку, како на пример:
 * <span style="font-family: 'Times New Roman',Times,serif;">грешка од страна на програмерот
 * <span style="font-family: 'Times New Roman',Times,serif;">проблеми со компатибилноста на веб пребарувачот (најчесто со Internet Explorer)
 * <span style="font-family: 'Times New Roman',Times,serif;">разлики во оперативниот систем

<span style="font-family: 'Times New Roman',Times,serif;"> Поради овие причини, кога се пишува JavaScript код, истиот треба да се тестира на што е можно повеќе оперативни системи и веб прелистувачи.

 <span style="font-family: 'Times New Roman',serif; font-size: 1.4em; line-height: 1.5;">**Вашата прва JavaScript скрипта**

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Како прв и наједноставен пример, е да се направи Hello World пример. Во нашиот случај тоа ќе биде печатење на текстот „Hello World“. Кодот за овој пример е даден подолу: code <script type="text/JavaScript"> code Откако ќе го отвориме на веб предарувач треба да го видиме следното: code Hello World! code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Со script тагот, на веб предарувачот му се кажува дека на нашата веб страна ќе користиме скрипта. Со сетирање на типот на text/JavaScript му кажуваме дека кодот во скриптата ќе биде JavaScript. Исто така може да се забележи дека JavaScript кодот е ставен во ознаки за HTML коментар. Ова е направено со цел, ако веб пребарувачот нема подршка за извршување на JavaScript (или има но е оневозможена), кодот да не се прикаже на екран таков како што е. Ако кодот не е ставен во коментар, а веб пребарувачот нема подршка за JavaScript, тогаш на екран ќе го видиме следното. code document.write("Hello World!") code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Во погорниот код, од document објектот ја повикуваме write функцијата од document објектот. Оваа функција има за цел, влезниот параметар кој е од тип string да го запише во HTML документот. Влезниот параметар може да биде обичен текст, HTML текст или и двете. Во примерот погоре може да се забележи дека наредбата, во овој случај повикот на функцијата write, на крајот не завршува со точка-запирка. Во JavaScript не е задолжително да се пишува точка-запирка на крајот од наредбата, бидејќи JavaScript подразбира дека пишуваме една наредба во еден ред. Ако сакаме да имаме повеќе наредби во еден ред, тогаш мора да ги одделиме со точка-запирка.

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Пример за две наредби во еден ред, одделени со точка-запирка е даден подолу: code document.write("Hello "); document.write("World!") code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Сепак, ставањето на точка-запирка после секоја наредба, иако има само една наредба во еден ред, е добра програмерска практика.

 =<span style="font-family: 'Times New Roman',serif;">Овозможување/оневозможување на JavaScript во веб прелистувач = 
 * <span style="font-family: 'Times New Roman',serif;">Internet Explorer 6/7/8/9/10/11 **


 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">кликнуваме на **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">tools **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;"> од главното мени на веб пребарувачот (IE 6/7/8)
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на икончето за **tools** од главното мени на веб пребарувачот (IE 9/10/11)
 * <span style="font-family: 'Times New Roman',serif;">одбираме **Internet Explorer ...**
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **Security** картичката на **Internet Options** pop-up прозорецот
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **Custom Level …** копчето за да пристапиме до опциите за безбедност
 * <span style="font-family: 'Times New Roman',serif;">се движиме надолу се до **Scripting** секцијата
 * <span style="font-family: 'Times New Roman',serif;">го одбираме **Enable** копчето за **Active scripting**
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **OK**
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **Yes** за да потврдиме

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">За повеќе детали кликнете на: Internet Explorer 6/7/8 <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">За повеќе детали кликнете на: Internet Explorer 9/10/11


 * <span style="font-family: 'Times New Roman',serif;">Google Chrome (верзија 31) **


 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">во горниот десен агол, кликнуваме на икончето за копчето „ **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Customize and control Gogle Chrome **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">“
 * <span style="font-family: 'Times New Roman',serif;">од менито кликнуваме на **Settings**
 * <span style="font-family: 'Times New Roman',serif;">со лизгачот одиме најдолу и клинуваме на линкот **Show advanced settings...**
 * <span style="font-family: 'Times New Roman',serif;">во делот **Privacy** кликнуваме на **Content settings...**
 * <span style="font-family: 'Times New Roman',serif;">во делот JavaScript има две опции: **Allow all site to run JavaScript (recommended)** – за да овозможиме извршување на JavaScript код и втората опција е **Do not allow any site to run JavaScript** со која на сите сајтови им забрануваме да извршуваат JavaScript код
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме **Done**

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">За повеќе детали кликнете на: Google Chrome 31


 * <span style="font-family: 'Times New Roman',serif;">Mozilla Firefox (верзија 26.0) **


 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">во address барот пишуваме **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">about:config **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;"> и притискаме ентер
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на „**I'll be careful, I promise**“
 * <span style="font-family: 'Times New Roman',serif;">во search барот пишуваме **javascript.enabled**
 * <span style="font-family: 'Times New Roman',serif;">десен клик на резултатот именуван како **javascript.enabled** и кликнуваме на **Toggle**, со што ќе го оневозможиме извршувањето на JavaScript код на прелистувачот
 * <span style="font-family: 'Times New Roman',serif;">за да го овозможиме повторно, треба да се повторат истите чекори

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">За повеќе детали кликнете на: Mozilla Firefox 26.0


 * <span style="font-family: 'Times New Roman',serif;">Opera (верзија 17.0) **


 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **Opera** копчето во горниот лев агол
 * <span style="font-family: 'Times New Roman',serif;">одиме кај опцијата **Settings**
 * <span style="font-family: 'Times New Roman',serif;">потоа кај опцијата **Quick Preferences**
 * <span style="font-family: 'Times New Roman',serif;">го одозначуваме квадратчето кај опцијата **Enable JavaScript** за да го оневозможиме извршувањето на JavaScript код
 * <span style="font-family: 'Times New Roman',serif;">ако сакаме да го овозможиме извршувањето на JavaScript код, треба да го означиме квадратчето кај истата опција

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">За повеќе детали кликнете на: Opera 17.0


 * <span style="font-family: 'Times New Roman',serif;">Safari (верзија 5.1.7) **


 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">во горниот десен агол килкнуваме на икончето за **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">tools **
 * <span style="font-family: 'Times New Roman',serif;">кликнуваме на **Preferences …**
 * <span style="font-family: 'Times New Roman',serif;">ја одбираме картичката **Security**
 * <span style="font-family: 'Times New Roman',serif;">ја одозначуваме опцијата **Enable JavaScript** за да го оневозможиме извршувањето на JavaScript код
 * <span style="font-family: 'Times New Roman',serif;">ако сакаме да го овозможиме извршувањето на JavaScript код, треба да го означиме квадратчето кај истата опција

<span style="font-family: 'Times New Roman',serif;">За повеќе детали кликнете на: <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Safari 5.1.7

 <span style="font-family: 'Times New Roman',serif; font-size: 1.4em; line-height: 1.5;">**Проверка дали е овозможено извршување на JavaScript код на веб прелистувачот**

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Во денешно време скоро и да не може да се замисли веб сајт без користење на JavaScript. За да се справиме со веб пребарувачите кај кои е оневозможено извршувањето на JavaScript код, може да постапиме на еден од следните начини:  code <!doctype html>
 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">**пренасочување** - да постојат две верзии на веб сајтот. Едната да користи JavaScript, а другата да не користи. Кога корисникот ќе пристапи на веб сајтот, иницијално тоа да биде до верзијата која не користи JavaScript. Во head тагот да има JavaScript код кој ќе го пренасочи корисникот на верзијата која користи JavaScript. Или подетално: иницијално корисникот пристапува до сајтот кој не користи JavaScript, и ако извршувањето на JavaScript код на веб пребарувачот на корисникот е оневозможено, JavaScript кодот кој треба да изврши пренасочување нема да се изврши, и корисникот ќе пристапи до верзијата од сајтот кој не користи JavaScript. А ако извршувањето на JavaScript код е озвозможено на веб пребарувачот корисникот ќе биде пренасочен на верзијата која користи JavaScript.

<meta charset="utf-8"> My page <script type="text/javascript"> window.location = "http://www.example.com/JavaScript-enabled.html"

... code  code <!doctype html>
 * <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">**порака со известување дека за да правилна работа на сајтот мора да е овозможено извршување на JavaScript код на веб пребарувачот** - на почетокот од сајтот да се додаде порака која ќе го извести корисникот дека за правилна работа на сајтот мора да има овозможено извршување на JavaScript код. И веднаш по вчитување на страната да се додаде JavaScript код кој ќе ја крие оваа порака. Што значи дека ако корисникот ја има овозможено опцијата за извршување на JavaScript код, нема да ја види пораката за известување.

<meta charset="utf-8">

My page

За правилно работа на веб сајтот мора да ја имате овозможено опцијата за извршување на JavaScript код <script type="text/javascript"> document.getElementById("message").style.display = 'none'; ...

code

 =<span style="font-family: 'Times New Roman',serif;">Каде може да се пишува JavaScript кодот =

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Има три начини за тоа каде да стои JavaScript тагот:
 * <span style="font-family: 'Times New Roman',serif;">внатре во head тагот
 * <span style="font-family: 'Times New Roman',serif;">внатре во body тагот (најчесто пред затварење на body тагот)
 * <span style="font-family: 'Times New Roman',serif;">во надворешна .js датотека која се вклучува во html датотеката

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">JavaScript кодот пожелно е да стои во надворешна датотека пред се поради подобра организација на структурата на кодот за веб сајтот, повторна употреба на ист код, полесна читливост на html кодот од страните и полесно одржување на веб сајтот. Надворешната датотека може да се вклучи било каде во html кодот. Најчесто тоа се прави или на почетокот или на крајот. Повеќе се употребува вклучување на крајот од html кодот бидејќи со тоа побрзо ќе се рендерира html кодот на веб пребарувачот и се намалува време на чекање за корисникот да може да добие визуелен приказ на екранот. Но во одредени ситуации, како на пример со претходно споменатиот код со кој се правеше проверка дали извршувањето на JavaScript код е овозможено, и правеше пренасочување на друга страна, пожелно е кодот да стои на почетокот од страната.

 =<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Вклучување на надворешна датотека со JavaScript код =

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Надворешната датотека мора во себе да содржи само JavaScript код, мора да има екстензија .js и не треба да го има script тагот. За да се вклучи во html кодот се користи тагот script. На овој таг треба да му ги зададеме следните атрибути: src и type. Првиот атрибут како вредност треба да ја има патеката до надворешната JavaScript датотека вклучувајќи го и името и екстензијата на самата датотека. Ако html и JavaScript датотеките се наоѓаат на иста локација, во тој случај src тагот за вредност ќе го има само името и екстензијата на надворешната JavaScript датотека. Атрибутот type го специфицира MIME типот на скриптата. За JavaScript код MIME тип е: text/javascript. Подолу е даден пример каде во едноставна html страна (index.html) на крајот од body тагот е вклучена надворешна JavaScript датотека (hello.js). Во html кодот има едно копче на кое е наместено при клик на него да се повика фукцијата popup. Оваа функција се наоѓа во надворешната JavaScript датотека.

//<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">index.html // code <!doctype html>

<meta charset="utf-8"> My page

<input type="button" onclick="popup" value="Click Me!"> <script src="hello.js" type="text/javascript"> code

//<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">hello.js // code function popup { alert("Hello World"); } code

 =<span style="font-family: 'Times New Roman',serif;">Оператори во JavaScript =

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Операторите во JavaScript се многу слични како и операторите кај другите програмски јазици. Оператор, по дефиниција, претставува симбол кој се користи за извршување на одредена операција. Најчесто тоа се артиметички операции (собирање, одземање итн.), но не секогаш. 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Аритметички оператори **

<span style="color: #00000a; font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Аритметичките оператори се користат за извршување на основните математички операции: собирање, одземање, множење, делење и модул.


 * = **<span style="font-family: 'Times New Roman',serif;"> Оператор ** ||= **<span style="font-family: 'Times New Roman',serif;"> Операција ** ||= **<span style="font-family: 'Times New Roman',serif;"> Пример ** ||= **<span style="font-family: 'Times New Roman',serif;"> Резултат ** ||
 * = <span style="font-family: 'Times New Roman',serif;">+ ||= <span style="font-family: 'Times New Roman',serif;">собирање ||= <span style="font-family: 'Times New Roman',serif;">2 + 4 ||= <span style="font-family: 'Times New Roman',serif;">6 ||
 * = <span style="font-family: 'Times New Roman',serif;">- ||= <span style="font-family: 'Times New Roman',serif;">одземање ||= <span style="font-family: 'Times New Roman',serif;">6 – 2 ||= <span style="font-family: 'Times New Roman',serif;">4 ||
 * = <span style="font-family: 'Times New Roman',serif;">* ||= <span style="font-family: 'Times New Roman',serif;">множење ||= <span style="font-family: 'Times New Roman',serif;">5 * 3 ||= <span style="font-family: 'Times New Roman',serif;">15 ||
 * = <span style="font-family: 'Times New Roman',serif;">/ ||= <span style="font-family: 'Times New Roman',serif;">делење ||= <span style="font-family: 'Times New Roman',serif;">16 / 3 ||= <span style="font-family: 'Times New Roman',serif;">5.333333333333 ||
 * = <span style="font-family: 'Times New Roman',serif;">% ||= <span style="font-family: 'Times New Roman',serif;">модул ||= <span style="font-family: 'Times New Roman',serif;">43 % 10 ||= <span style="font-family: 'Times New Roman',serif;">3 ||

<span style="color: #00000a; font-family: 'Times New Roman',Times,serif;">Како специфичен оператор е операторот за модул. Кога го користиме овој оператор како резултат се добива одтатокот од делењето. Во случајот 43 % 10 = 3, значи дека 43 % 1 = (4 * 10) + 3. 
 * **<span style="color: #00000a; font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Споредбени оператори **

<span style="color: #00000a; font-family: 'Times New Roman',Times,serif;">Споредбените оператори се користат за проверка на две вредности и како резултат секогаш се добива true или flase. Овие наредби најчесто се користат во наредбите со услов. 
 * = **<span style="font-family: 'Times New Roman',serif;">Оператор ** ||= **<span style="font-family: 'Times New Roman',serif;">Операција ** ||= **<span style="font-family: 'Times New Roman',serif;">Пример ** ||= **<span style="font-family: 'Times New Roman',serif;">Резултат ** ||
 * = <span style="font-family: 'Times New Roman',serif;">== ||= <span style="font-family: 'Times New Roman',serif;">исто со (се споредува само вредноста, а не и типот на променливата) ||= <span style="font-family: 'Times New Roman',serif;">3 == 5 ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 == 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 == "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * = <span style="font-family: 'Times New Roman',serif;">=== ||= <span style="font-family: 'Times New Roman',serif;">исто со (се споредува и вредноста и типот на променливата) ||= <span style="font-family: 'Times New Roman',serif;">3 === 5 ||= <span style="font-family: 'Times New Roman',serif;">flase ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 === 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 === "5" ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * = <span style="font-family: 'Times New Roman',serif;">!= ||= <span style="font-family: 'Times New Roman',serif;">не е исто со (се споредува само вредноста, а не и типот на променливата) ||= <span style="font-family: 'Times New Roman',serif;">3 != 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 != 5 ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 != "5" ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * = <span style="font-family: 'Times New Roman',serif;">!== ||= <span style="font-family: 'Times New Roman',serif;">не е исто со (се споредува и вредноста и типот на променливата) ||= <span style="font-family: 'Times New Roman',serif;">3 !== 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 !== 5 ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 !== "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * = <span style="font-family: 'Times New Roman',serif;">< ||= <span style="font-family: 'Times New Roman',serif;">помало од (типот на променливата не е битен) ||= <span style="font-family: 'Times New Roman',serif;">3 < 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">3 < "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * = <span style="font-family: 'Times New Roman',serif;">> ||= <span style="font-family: 'Times New Roman',serif;">поголемо од (типот на променливата не е битен) ||= <span style="font-family: 'Times New Roman',serif;">3 > 5 ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">3 < "5" ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * = <span style="font-family: 'Times New Roman',serif;"><= ||= <span style="font-family: 'Times New Roman',serif;">помало или исто со (типот на променливата не е битен) ||= <span style="font-family: 'Times New Roman',serif;">3 <= 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 <= 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">3 <= "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">5 <= "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * = <span style="font-family: 'Times New Roman',serif;">>= ||= <span style="font-family: 'Times New Roman',serif;">поголемо или исто со (типот на променливата не е битен) ||= <span style="font-family: 'Times New Roman',serif;">7 >= 5 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">7 >= 7 ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">7 >= "5" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">7 >= "7" ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Логички оператори **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Има три логички оператори и тоа: логичко И (&&) кое дава вредност true ако и само ако и двете страни имаат вредност true, логичко ИЛИ (||) кое дава вредност true, ако барем едната од страните има вредност true и негација (!) кое ја негира вредноста т.е. од true ја прави false и обратно од false ја прави true.


 * = **<span style="font-family: 'Times New Roman',serif;"> Оператор ** ||= **<span style="font-family: 'Times New Roman',serif;"> Операција ** ||= **<span style="font-family: 'Times New Roman',serif;"> Пример ** ||= **<span style="font-family: 'Times New Roman',serif;"> Резултат ** ||
 * = <span style="font-family: 'Times New Roman',serif;">&& ||= <span style="font-family: 'Times New Roman',serif;">логичко И ||= <span style="font-family: 'Times New Roman',serif;">true && true ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">true && false ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">false && true ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">false && false ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * = <span style="font-family: 'Times New Roman',serif;">| | ||= <span style="font-family: 'Times New Roman',serif;">логичко ИЛИ ||= <span style="font-family: 'Times New Roman',serif;">true && true ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">true && false ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">false && true ||= <span style="font-family: 'Times New Roman',serif;">true ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">false && false ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * = <span style="font-family: 'Times New Roman',serif;">! ||= <span style="font-family: 'Times New Roman',serif;">негација ||= <span style="font-family: 'Times New Roman',serif;">!true ||= <span style="font-family: 'Times New Roman',serif;">false ||
 * ^  ||^   ||= <span style="font-family: 'Times New Roman',serif;">!false ||= <span style="font-family: 'Times New Roman',serif;">true ||

 =<span style="font-family: 'Times New Roman',Times,serif;">Променливи во JavaScript =

<span style="font-family: 'Times New Roman',serif;">Целта на променливите е да се зачува некоја информација која ќе може покасно да се искористи. Променлива е симболично име која го претставува некој податок, коj е зададен од страна на програмерот или се добива со некоја пресметка. За име на променлива треба да се избере збор/зборови кои го опишуваат податокот кој што ќе се чува во таа променлива. <span style="font-family: 'Times New Roman',serif;">Кога една променлива се користи за прв пат, не мора да се користи резервираниот зборот var, но сепак е добра програмерска практика да се употребува за да може да се види каде променливата е употребена за прв пат во програмата. Освен тоа резервираниот збор var влијае и врз опсегот во кој „живее“ променливата т.е. каде се може да се пристапи до таа променлива. Ако во една функција се направи променлива со име broj1 и притоа се користи резервираниот збор var (пр. //var broj1;//) тогаш оваа променлива ќе може да се пристапи (да се употребува само во таа функација), односно нејзиниот опсег во кој „живее“ е функцијата во која е декларирана. Ако се направи уште една променлива со име broj2 и притоа не се користи резервираниот збор var (пр. //broj2;//) во овој случај опсегот на оваа прменлива ќе оди во погорните опсеци се додека не најде променлива која е со исто име (во случајов //broj2//) и пред која го има резервираниот збор var, или ако нема таква променлва тогаш нејзиниот опсег ќе биде глобален. //За да се избегнат проблемите со опсегот на променливите пожелно е да се користи резервираниот збор var//. <span style="font-family: 'Times New Roman',serif;">Во JavaScript при декларирање на променлива ако не и се додели вредност на таа променлива т.е. ако таа променлива не се иницијализира, како default вредност ќе има //undefined//.

<span style="font-family: 'Times New Roman',serif;">Пример ако направиме променлива broj и без да и доделиме вредност ја испечатиме … code var broj; document.write(broj); code <span style="font-family: 'Times New Roman',serif;">... ќе го добиеме следниот резултат: code undefined code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Ако при декларирање на променливата направиме и иницијалицазија, во тој случај ќе ја видиме вредноста на променливата.

<span style="font-family: 'Times New Roman',serif;">Пример ако направиме променлива broj и ја иницијализираме на 5, тогаш … code var broj = 5; document.write(broj); code <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">… тогаш ќе ја видиме вредноста на променливата. code 5 code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Типови на променливи **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">При декларирање на променливи во JavaScript може да се забележи дека никаде не се наведува типот на променливата, односно од кој тип ќе биде податокот кој ќе се чува во таа променлива. Тоа е така бидејќи самиот JavaScript, во зависност од вредноста што ќе и биде зададена на променливата ќе си го одреди типот на податокот.


 * = **<span style="font-family: 'Times New Roman',serif;"> Тип на променлива ** ||= **<span style="font-family: 'Times New Roman',serif;"> Пример ** ||= **<span style="font-family: 'Times New Roman',serif;"> Опис ** ||
 * = <span style="font-family: 'Times New Roman',serif;">String ||= <span style="font-family: 'Times New Roman',serif;">var gard = "Bitola"; ||= <span style="font-family: 'Times New Roman',serif;">Секој податок кој е низа од карактери, а може и еден карактер, заобиколен во единечни или двојни наводници. ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var gard = "B"; ||^   ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var grad = 'Bitola'; ||^   ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var grad = 'B'; ||^   ||
 * = <span style="font-family: 'Times New Roman',serif;">Number ||= <span style="font-family: 'Times New Roman',serif;">var broj = 5; ||= <span style="font-family: 'Times New Roman',serif;">Секој податоок кој е цел или децимален број (било позитивен или негативен), или екпоненцијален број ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var broj = 5.7; ||^   ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var broj = -5; ||^   ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var broj = 123e5; ||^   ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var broj = 123e-5; ||^   ||
 * = <span style="font-family: 'Times New Roman',serif;">Boolean ||= <span style="font-family: 'Times New Roman',serif;">var tmp = true; ||= <span style="font-family: 'Times New Roman',serif;">Секој податок кој има вредност true или false; ||
 * ^  ||= <span style="font-family: 'Times New Roman',serif;">var tmp = false; ||^   ||
 * = <span style="font-family: 'Times New Roman',serif;">Array ||< <span style="font-family: 'Times New Roman',serif;">var data = new Array;

<span style="font-family: 'Times New Roman',serif;"> data[0] = "BMW"; <span style="font-family: 'Times New Roman',serif;"> data[1] = false; <span style="font-family: 'Times New Roman',serif;">data[2] = "Audi"; <span style="font-family: 'Times New Roman',serif;">data[3] = 7; <span style="font-family: 'Times New Roman',serif;"> data[4] = "Ford"; ||= <span style="font-family: 'Times New Roman',serif;">Секој податок кој во себе содржи повеќе вредности кои не мора да бидат од ист тип на податок. || <span style="font-family: 'Times New Roman',serif;"> brand : "BMW", <span style="font-family: 'Times New Roman',serif;"> model : "M5", <span style="font-family: 'Times New Roman',serif;"> HP : 507, <span style="font-family: 'Times New Roman',serif;"> automatic : true, <span style="font-family: 'Times New Roman',serif;"> fuelTankGallons : 18.5 <span style="font-family: 'Times New Roman',serif;">}; ||= <span style="font-family: 'Times New Roman',serif;">Податок кој започнува со {, завршува со } и кој во себе содржи својства (properties) кои се одделени со, (запирка) и вредноста од својството е одделена со : (две точки). ||
 * ^  ||< <span style="font-family: 'Times New Roman',serif;">var data = new Array ("BMW", false, "Audi", 7, "Ford"); ||^   ||
 * = <span style="font-family: 'Times New Roman',serif;">Object ||< <span style="font-family: 'Times New Roman',serif;">var car = {
 * = <span style="font-family: 'Times New Roman',serif;">Undefined ||= <span style="font-family: 'Times New Roman',serif;">var myVar; ||= <span style="font-family: 'Times New Roman',serif;">undefined е default вредност на секоја променлива на која не и е доделена вредност. ||
 * = <span style="font-family: 'Times New Roman',serif;">Null ||= <span style="font-family: 'Times New Roman',serif;">var car = null; ||= <span style="font-family: 'Times New Roman',serif;">null е вредност со која се празнат променливите. ||
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Проверка на типот на променлива **

<span style="font-family: 'Times New Roman',serif;"> Проверка на типот на променлива може да се направи со користење на typeof.

<span style="font-family: 'Times New Roman',serif;">Примери за користење typeof: code var carBrand = "BMW"; var carGroup = 'M'; var carGroupNo = 5; var automatic = true; var CarEquipment = ["ABS", "ESP", "Air bags"];

document.write(typeof carBrand); document.write(typeof carGroup); document.write(typeof carGroupNo); document.write(typeof automatic);

code <span style="font-family: 'Times New Roman',serif;">Резултати од погоре наведените проверки: code string string number boolean

code 
 * **<span style="color: #00000a; font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Конверзија на типот на променливата **

<span style="font-family: 'Times New Roman',serif;"> Во текот на програмата JavaScript автоматски го менува типот на податокот на променливата во однос на вредноста што ја задаваме. Подолу е даден конкретен пример: code var data = "BMW"; document.writeln(typeof data); data = 5; document.writeln(typeof data); data = 'M'; document.writeln(typeof data); data = true; document.writeln(typeof data);

code <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Резултати од погорниот пример:

code string number string boolean code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Конверзија од еден тип на податок во друг може да се прави со користење на глобалните функции за конверзија на типови на податоци: parseInt и parseFloat.

<span style="font-family: 'Times New Roman',serif;">Подолу е даден пример за користење на parseInt глобалната функција:

code var number1 = parseInt("10"); var number2 = parseInt("10.00"); var number3 = parseInt("10.33"); var number4 = parseInt("34 45 66"); var number5 = parseInt(" 60 "); var number6 = parseInt("40 years"); var number7 = parseInt("10",10); var number8 = parseInt("010"); var number9 = parseInt("10",8); var number10 = parseInt("0x10"); var number11 = parseInt("10",16);

document.writeln(number1); document.writeln(number2); document.writeln(number3); document.writeln(number4); document.writeln(number5); document.writeln(number6); document.writeln(number7); document.writeln(number8); document.writeln(number9); document.writeln(number10); document.writeln(number11);

code <span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Резултати од погорниот пример: code 10 10 10 34 60 40 10 10 8 16 16 code

<span style="font-family: 'Times New Roman',serif;">Подолу е даден пример за користење на parseFloat глобалната функција: code var number1 = parseFloat("10"); var number2 = parseFloat("10.00"); var number3 = parseFloat("10.33"); var number4 = parseFloat("34.7 45 66"); var number5 = parseFloat(" 60 "); var number6 = parseFloat("40 years");

document.writeln(number1); document.writeln(number2); document.writeln(number3); document.writeln(number4); document.writeln(number5); document.writeln(number6);

code <span style="font-family: 'Times New Roman',serif;">Резултати од погорниот пример: code 10 10 10.33 34.7 60 40 code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Конвенција за именување на променливи **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">При избирање на име на променлива треба да се осигураме дека тоа име не е некој од резервираните зборови кои ги користи JavaScript. Добра програмерска практика е името на променливата да го опишува податокот што ќе се чува во неа. Пример ако треба да се направи променлива во која како податок ќе се чува возраста на некој корисник, променливата би можела да биде: var age = 24; Ако името на променливата треба да има повеќе зборови тогаш пожелно е да се користи еден од двата методи за именување на променливи со повеќе зборови, со цел да се подобри читливоста на кодот.

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">**а)** со користење на долна црта. На пример за променлива во која како податок ќе се чува максималниот број на литри на гориво на резерварот на автомобилот би можело да биде: var car_fuel_tank_capacity = 70;

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">**б)** camel case syntax. Секој нареден збор, освен првиот, да почнува со голема буква. На пример за променлива во која како податок ќе се чува максималниот број на литри на гориво на резерварот на автомобилот би можело да биде: var carFuelTankCapacity = 70;

<span style="font-family: 'Times New Roman',serif;">Исто така добра пракса е да не се мешаат овие два начини на именување во една програма т.е. начинот на именување да биде козистентен низ целата програма. <span style="font-family: 'Times New Roman',serif;">Името на променливата мора да почнува или во буква или со долна црта т.е. како почетен карактер на името не може да се користат бројки или специјални знаци.


 * **<span style="font-family: 'Times New Roman',serif;">Резервирани зборови во JavaScript ** ||
 * <span style="font-family: 'Times New Roman',serif;">abstract || <span style="font-family: 'Times New Roman',serif;">else || <span style="font-family: 'Times New Roman',serif;">instanceof || <span style="font-family: 'Times New Roman',serif;">switch ||
 * <span style="font-family: 'Times New Roman',serif;">boolean || <span style="font-family: 'Times New Roman',serif;">enum || <span style="font-family: 'Times New Roman',serif;">int || <span style="font-family: 'Times New Roman',serif;">synchronized ||
 * <span style="font-family: 'Times New Roman',serif;">break || <span style="font-family: 'Times New Roman',serif;">export || <span style="font-family: 'Times New Roman',serif;">interface || <span style="font-family: 'Times New Roman',serif;">this ||
 * <span style="font-family: 'Times New Roman',serif;">byte || <span style="font-family: 'Times New Roman',serif;">extends || <span style="font-family: 'Times New Roman',serif;">long || <span style="font-family: 'Times New Roman',serif;">throw ||
 * <span style="font-family: 'Times New Roman',serif;">case || <span style="font-family: 'Times New Roman',serif;">false || <span style="font-family: 'Times New Roman',serif;">native || <span style="font-family: 'Times New Roman',serif;">throws ||
 * <span style="font-family: 'Times New Roman',serif;">catch || <span style="font-family: 'Times New Roman',serif;">final || <span style="font-family: 'Times New Roman',serif;">new || <span style="font-family: 'Times New Roman',serif;">transient ||
 * <span style="font-family: 'Times New Roman',serif;">char || <span style="font-family: 'Times New Roman',serif;">finally || <span style="font-family: 'Times New Roman',serif;">null || <span style="font-family: 'Times New Roman',serif;">true ||
 * <span style="font-family: 'Times New Roman',serif;">class || <span style="font-family: 'Times New Roman',serif;">float || <span style="font-family: 'Times New Roman',serif;">package || <span style="font-family: 'Times New Roman',serif;">try ||
 * <span style="font-family: 'Times New Roman',serif;">const || <span style="font-family: 'Times New Roman',serif;">for || <span style="font-family: 'Times New Roman',serif;">private || <span style="font-family: 'Times New Roman',serif;">typeof ||
 * <span style="font-family: 'Times New Roman',serif;">continue || <span style="font-family: 'Times New Roman',serif;">function || <span style="font-family: 'Times New Roman',serif;">protected || <span style="font-family: 'Times New Roman',serif;">var ||
 * <span style="font-family: 'Times New Roman',serif;">debugger || <span style="font-family: 'Times New Roman',serif;">goto || <span style="font-family: 'Times New Roman',serif;">public || <span style="font-family: 'Times New Roman',serif;">void ||
 * <span style="font-family: 'Times New Roman',serif;">default || <span style="font-family: 'Times New Roman',serif;">if || <span style="font-family: 'Times New Roman',serif;">return || <span style="font-family: 'Times New Roman',serif;">volatile ||
 * <span style="font-family: 'Times New Roman',serif;">delete || <span style="font-family: 'Times New Roman',serif;">implements || <span style="font-family: 'Times New Roman',serif;">short || <span style="font-family: 'Times New Roman',serif;">while ||
 * <span style="font-family: 'Times New Roman',serif;">do || <span style="font-family: 'Times New Roman',serif;">import || <span style="font-family: 'Times New Roman',serif;">static || <span style="font-family: 'Times New Roman',serif;">with ||
 * <span style="font-family: 'Times New Roman',serif;">double || <span style="font-family: 'Times New Roman',serif;">in || <span style="font-family: 'Times New Roman',serif;">super ||  ||

 =<span style="font-family: 'Times New Roman',Times,serif;">Функции =

<span style="font-family: 'Times New Roman',Times,serif;">Функција претстаува парче код кој ќе се изврши тогаш кога ќе биде повикан. Декларацијата на функцијата се пишува така што прво се пишува резервираниот збор function, потоа името на функцијата кое за задава од страна на програмерот и на крај следат отврена и затворена мала заграда. Во овие загради може да се пишуваат променливи кои се викаат влезни аргументи (или уште може да се викаат - параметри) на функцијата. При пишување на аргументите се пишува само името на аргументот без резервираниот звор var. Доколу функцијата има повеќе од еден аргумент тие меѓусебе се одделуваат со запирка. Една функција може и да нема влезни аргументи. За формирање на имиња на функции важат истите правила како и за формирање на имиња на променливи. Дефиницијата т.е. телото на функцијата е всушност она што таа функција го прави. Дефиницијата на функцијата започнува со { (отворена голема заграда) и завршува со } (затворена голема заграда).

<span style="font-family: 'Times New Roman',serif;">Пример за функција која прима два аргументи и го пресметува нивниот збир. code function prezmetajZbir (broj1, broj2) { var zbir = broj1 + broj2; }

code

<span style="font-family: 'Times New Roman',serif;">Пример за функција која не прима влезни параметри. code function prezmetajZbir { var broj1 = 5; var broj2 = 7; var zbir = broj1 + broj2; }

code

<span style="font-family: 'Times New Roman',serif;">Функциите може да враќаат вредност, но и не мора. Ако функцијата враќа вредност тогаш мора да го има резервираниот збор return и после него да следи вредноста што треба да се врати. Сите наредби кои ќе се напишат после наредбата со return резервираниот код, нема да се извршат. И тој код се вика мртов код.

<span style="font-family: 'Times New Roman',serif;">Пример за функција која не враќа вредност: code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; var poraka = "Zbirot e: " + zbir;

alert(poraka); }

code

<span style="font-family: 'Times New Roman',serif;">Пример за функција која враќа вредност: code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2;

return zbir; } code

<span style="font-family: 'Times New Roman',serif;">Пример за функција со мртов код: code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; var output = "Zbirot e: " + zbir; return zbir; // slednite dva reda se mrtov kod

alert(zbir); var razlika = broj1 - broj2; }

code

<span style="font-family: 'Times New Roman',Times,serif;">За да се изврши кодот што се наоѓа во телото на функцијата, потребно е таа функцијада се повика. Повик на функција се прави така што се пишува само името на функцијата без резервираниот збор function, потоа се пишуваат отворена и затворена мала заграда, во кои треба да се внесат параметри, доколку функцијата треба да прими. При внесувањето на параметрите, самите парамтери може да бидат некои променливи или пак фиксни вредност. Доколку при повик на функцијата и се проследат повеќе параметри отколку што таа навистина прима, тогаш параметрите кои се вишок ќе бидат игнорирани. А ако при повик на функцијата и се проследат помалку параметри, во тој случај останатите параметри ќе имаат вредност undefined. Доколу се повикува функција која враќа вредност, најчесто вредноста која се враќа се зачувува во променлива за да се користи за понатамошни пресметки.

<span style="font-family: 'Times New Roman',serif;">Пример за повик на функција која не прима влезни параметри и не враќа вредност. code function prezmetajZbir { var zbir = 5 + 7; alert(zbir); }

prezmetajZbir;

code

<span style="font-family: 'Times New Roman',serif;">Пример за повик на функција која не враќа вредност, прима влезни параметри и притоа параметрите се променливи. code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; alert(zbir); }

var br1 = 5; var br2 = 7;

prezmetajZbir(br1, br2);

code

<span style="font-family: 'Times New Roman',serif;">Пример за повик на функција која не враќа вредност, прима влезни параметри и притоа параметрите се фиксни вредности. code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; alert(zbir); }

prezmetajZbir(5, 7);

code

<span style="font-family: 'Times New Roman',serif;">Пример за повик на функција која враќа вредност, прима влезни параметри и притоа параметрите се промелниви. Вредноста што се враќа се чува во посебна променлива. code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; return zbir; }

var br1 = 5; var br2 = 7;

var rezultat = prezmetajZbir(br1, br2);

alert(rezultat);

code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Пример за повик на функција која не враќа вредност, прима влезни параметри и притоа параметрите се фиксни вредности. При повик на оваа функција и се проследуваат повеќе параметри одколку што е потребно. code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; alert(zbir); }

prezmetajZbir(5, 7, 9);

code

<span style="font-family: 'Times New Roman',serif;">Пример за повик на функција која не враќа вредност, прима влезни параметри и притоа параметрите се фиксни вредности. При повик на оваа функција и се проследуваат помалку параметри одколку што е потребно. code function prezmetajZbir(broj1, broj2) { var zbir = broj1 + broj2; // broj2 ke ima vrednost undefined // rezultatot od sobiranjeto ke bide NaN bidejki operacijata ne moze da se izvrsi alert(zbir); }

prezmetajZbir(5);

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Локални променливи во JavaScript **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Променливи кои се декларирани, со користење на резервираниот збор var, внатре во некоја JavaScript функција стануваат локлани променливи и истите може да се пристапат само во таа функција. Во друга функција може да имаме променлива со исто име како во претходната функција и тоа воопшто нема да претставува никаков проблем, бидејќи како што е претходно споменато локалните променливи „живеат“ само во фнкцијата во која се декларирани. Локалните променливи се бришат веднаш одкако функцијата ќе се изврши.

<span style="font-family: 'Times New Roman',serif;">Пример за локални променливи: code function zgolemi { var br = 10; br = br + 5; alert("zgolemen e: " + br); }

function namali(broj) { var br = 10; br = br - 5; alert("namalen e: " + br); }

zgolemi; namali;

code 
 * **<span style="font-family: 'Times New Roman',Times,serif;">Глобални променливи во JavaScript **

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Променливите кои се декларирани надвор од функција се глобални променливи. Глобалните променливи може да бидат пристапени од сите скрипти и функции на веб страната. Животниот век на глобалните променливи започнува со нивната декларација, а завршува кога ќе се затвори веб страната.

code var br = 10;

function zgolemi { br = br + 5; alert("zgolemen e: " + br); }

function namali(broj) { br = br - 5; alert("namalen e: " + br); }

zgolemi; namali;

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Доделување на вредност на недекларирани променливите **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Ако на променлива која се уште не е декларирана и се додели вредност, во тој случај таа променлива автоматски ќе се декларира како глобална променлива.

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Пример:

code broj = 10; code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Во погорниот пример автоматски ќе се декларира глобална променлива со име broj и вредност 10.

 =<span style="font-family: 'Times New Roman',Times,serif;">Услови =

<span style="font-family: 'Times New Roman',Times,serif;">Наредбите со услови се користат за да се извршат различни акции во зависност од дадениот услов. Во JavaScript ги има следните условни наредби:

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**if** наредба – оваа наредба се користи за да се изврши одреден код само ако даден успов е вистиниот т.е. има вредност true <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**if … else** наредба – се користи за извршување на даден код ако одреден услов има вредност true, или извршување на друг код ако истиот услов има вредност false. <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**if … else if … else** наредба – се користи за да се изврши само еден блок со код од повеќе блокови со код. <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**switch** наредба - се користи за да се изврши само еден блок со код од повеќе блокови со код. 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">if наредба **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Оваа наредба се користи за да се изврши некој блок со код, само ако одреден услов е точен т.е. има вредност true.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code if (condition) { code to be executed if condition is true }

code

<span style="font-family: 'Times New Roman',serif;">Пример: code var godini = 20;

if (godini >= 18) { alert("Korisnikot e polnoleten"); }

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">if … else наредба **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Оваа наредба се користи за извршување на даден код ако одреден услов има вредност true, или извршување на друг код ако истиот услов има вредност false.

<span style="font-family: 'Times New Roman',serif;">Шема: code if (condition) { code to be executed if condition is true } else { code to be executed if condition is not true }

code

<span style="font-family: 'Times New Roman',serif;">Пример: code var godini = 20;

if (godini >= 18) { alert("Korisnikot e polnoleten"); } else { alert("Korisnikot e maloleten"); }

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">if … else if … else наредба **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Оваа наредба се користи за да се изврши само еден блок со код од повеќе блокови со код.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code if (condition1) { code to be executed if condition1 is true } else if (condition2) { code to be executed if condition2 is true } else { code to be executed if neither condition1 nor condition2 is true }

code

<span style="font-family: 'Times New Roman',serif;">Пример: code var broj = 5;

if (broj < 0) { document.writeln("brojot e pomal od nula"); } else if (broj > 0) { document.writeln("brojot e pogolem od nula"); } else { document.writeln("brojot e nula"); }

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">switch наредба **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Оваа наредба се користи за да се изврши само еден блок со код од повеќе блокови со код. Оваа наредба ја обавува истата работа како и наредбата од потточка 10.3 но има различна синтакса. <span style="font-family: 'Times New Roman',serif;">Најпрво се креира една променлива (во примерот подолу тоа е променливата godisnoVremeBroj) и во неа се задава одредена вредност. Во оваа променлива како вредност може да се чува број, еден карактер или стринг, а не може објект или низа. Истата таа променлива ја задаваме како параметар во switch наредбата. case знaчи дека кога кога вредноста на променливата која е зададена во switch наредбата е иста со вредноста после case ќе се изврши кодот во тој case се до првата break наредба и сите case што следуваат нема воопшто да се проверат. На пример ако имаме case од 1 до 10, а вредноста на променливата во switch наредбата има вредност 5, најпрво таа вредност ќе се спореди со вредноста во првиот case, бидејќи не се софпаѓаат вредностите, наредна споредба е со вториот case и се така до петтиот. Бидејќи во петтиот case вредностите се софпаѓаат ќе се извршат сите наредби што се во тој case и повеќе нема да се прави споредба на вредноста од променливата од switch наредбата со case 6, 7, 8, 9 и 10. Ако во switch наредбата имаме вредност која не е во опсегот од 1 до 10, во тој случај ќе се изврши само кодот кој се наоѓа веднаш под default резервираниот збор. Кај крајот од наредбите во default може но не мора да стои резервираниот збор break;

<span style="font-family: 'Times New Roman',serif;">Синтакса: code var n = 1;

switch(n) { case 1: execute code block 1 break; case 2: execute code block 2 break; default: code to be executed if n is different from case 1 and 2 } code

<span style="font-family: 'Times New Roman',serif;">Пример: code var godisnoVremeBroj = 3;

switch(godisnoVremeBroj) { case 1: document.writeln("Prolet"); break; case 2: document.writeln("Leto"); break; case 3: document.writeln("Esen"); break; case 4: document.writeln("Zima"); break; default: document.writeln("Pogresen broj na godisno vreme"); break; }

code

 =<span style="font-family: 'Times New Roman',Times,serif;">Циклуси =

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Циклус претставува повторување на некои наредби се додека некој услов е исполнет. Во JavaScript има повеќе типови на циклуси и тоа: 
 * **<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">for циклус **

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">синтаксата за овој тип на циклус е следната: прво се пишува резервираниот збор for, потоа следуваат отворена и затворена мала заграда и потоа има отворена и затворена голема заграда. Во малите загради има три наредби. Првата наредба е за иницијалицирање на променлива пред започнување на циклусот. Оваа наредба се извршува само еднаш. Втората наредба претставува услов со кој се дефинира до кога треба циклусот да работи. Кога овој услов ќе врати false циклусот претставува со работа. И третата наредба е промена на вредностите во условот од втората наредба. Зошто ако не се направи промена на вредностите во условот ќе се добие бесконечен циклус. Внатре помеѓу отворената и затворената голема заграда се пишуваат наредбите што треба да се извршат за едно вртење на циклусот.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code for (statement 1; statement 2; statement 3) { the code block to be executed }

code

<span style="font-family: 'Times New Roman',serif;">Пример кој ги печати броевите од 1 до 10: code for (var i = 1; i <= 10; i++) { document.writeln(i + "; "); }

code

<span style="font-family: 'Times New Roman',serif;">Пример кој ги печати сите непарни броеви од 1 до 10: code for (var i = 1; i <= 10; i = i+2) { document.writeln(i + "; "); } code 
 * **<span style="font-family: 'Times New Roman',Times,serif;">for/in циклус **

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">for/in циклусот се користи за итерирање низ својствата на еден објект. Синтаксата за овој тип на циклус е следна: се пишува резервираниот збор for, потоа следат отворена и затворена мала заграда и после нив отворена и затворена голема заграда. Во малите загради прво се пишува некоја променлива со име по наш избор (подолу во примерот променлива со име i), потоа следи резервираниот збор in и после него се пишува името на објектот низ кој сакаме да итерираме. Помеѓу отворената и затворената голема заграда се пишува она што сакаме да го работиме со својствата од објектот.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code for (x in objectName) { the code block to be executed } code

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Пример за итерирање низ објект со име covek, во кој се чуваат својствата: име, презиме и години. code var covek = { ime : "John", prezime : "Doe", godini : 25 };

for (i in covek) { document.writeln(covek[i] + "; "); } code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">while циклус **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Овој циклус се користи за извршување на некои наредби кои треба да се повторуваат се додека даден услов е точен. Синтаксата на овој тип на циклус е следна: се пишува резервираниот збор while, потоа следат отворена и затворена мала заграда и после нив отворена и затворена голема заграда. Во малите загради се пишува услов кој треба да биде true или false. Циклусот ќе се повторува се додека условот има вредност true. Ако уште при првиот пат условот има вредност false циклусот нема да се изврши ниту еднаш. Помеѓу отворената и затворената голема заграда се пишуваат наредби кои сакаме да се извршат со секое вртење на циклусот. Треба да се внимава внатре во овие заграда да се напиши наредба која ќе влијае на вредноста на условот, во спротивно може да се добие кој ќе се извршува бесконечно.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code while (condition) { code block to be executed } code

<span style="font-family: 'Times New Roman',serif;">Пример со кој се печатат сите броеви од 1 до 10: code var brojac = 1;

while (brojac <= 10) { document.writeln(brojac + ";"); brojac++; } code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">do/while циклус **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Овој циклус се користи за извршување на некои наредби кои треба да се повторуваат се додека даден услов е точен. Синтаксата на овој тип на циклус е следна: се пишува резервираниот збор do, потоа следат отворена и затворена голема заграда, потоа се пишува резервираниот збор while и после него следуваат отворена и затворена голема заграда. Помеѓу отворената и затворената голема заграда се пишуваат наредби кои сакаме да се извршат со секое вртење на циклусот. Треба да се внимава внатре во овие заграда да се напиши наредба која ќе влијае на вредноста на условот, во спротивно може да се добие циклус кој ќе се извршува бесконечно. Во малите загради се пишува услов кој треба да биде true или false. Циклусот ќе се повторува се додека условот има вредност true. Карактеристично за овој тип на циклус е тоа што мора да се изврши барем еднаш дури и во случај кога уште на почетокот условот има вредност false.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code do { code block to be executed } while (condition); code

<span style="font-family: 'Times New Roman',serif;">Пример кој ги печати сите броеви од 1 до 10: code var brojac = 1;

do { document.writeln(brojac + "; "); brojac++; } while (brojac <= 10); code

 =<span style="color: #00000a; font-family: 'Times New Roman',Times,serif;">Користење на break и continue во циклуси = 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">break **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Наредбата **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">break **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;"> се користи за прекинување на циклусот, во зависност на даден услов, пред да тој да ги заврши сите вртења. Пример ако имаме една низа со броеви и треба да се провери дали во таа низа има број што е делив со 7. Ако има да се испечати кој е тој број, ако нема да се испечати порака дека во низата нема број кој е делив со 7.

<span style="font-family: 'Times New Roman',serif;">Пример: code var broevi = [1, 3, 5, 10, 70, 88, 144, 256, 2014]; var broj;

for (var i = 0; i < broevi.length; i++) { if(broevi[i] % 7 == 0) { broj = broevi[i]; break; } }

if (typeof broj === 'undefined') { document.writeln("Nema broj koj e deliv so 7"); } else { document.writeln("Brojot " + broj + " e deliv so 7"); }

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">continue **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Наредбата **continue** се користи за да се пресконки извршувањето на наредбите само за едно вртење на циклусот. Пример ако имаме една низа со броеви и треба да се намали вредноста на сите броеви за 1, освен броевите кои се деливи со 7. Откако ќе се намали вредноста на броевите да се испечати новата вредност. code var broevi = [1, 3, 5, 10, 70, 88, 144, 256, 2014]; var broj;

for (var i = 0; i < broevi.length; i++) { if(broevi[i] % 7 == 0) { continue; } else { document.writeln((broevi[i] - 1) + "; "); } }

code  =<span style="font-family: 'Times New Roman',Times,serif;">Справување со грешки =

<span style="font-family: 'Times New Roman',Times,serif;">За справување со грешки во JavaScript се користат наредбите try/catch или throw наредбата. Грешки во JavaScript кодот можат да се случат од следните причини:

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**а)** синтаксичнки грешки, најчесто при пишување на кодот од страна на програмерот <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**б)** погрешно напишани или непостоечки карактеристики во јазикот (кои може да се јават како последица на различноста на веб пребарувачите) <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**в)** грешки кои се појавуваат како последица на погрешен input од корисникот или серверот. <span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">**г)** и уште многу други непредвидливи работи

<span style="font-family: 'Times New Roman',Times,serif; line-height: 1.5;">Кога ќе се појави грешка, кога нешто ќе тргне наопаку, JavaScript engine-от – нормално ќе престани со работа и ќе генерира порака со грешката. Технички израз за ова е: JavaScript ќе фрли (throw) грешка. 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">try/catch **

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">try наредбата овозможува да се дефинира блок во кој ќе се пишува код и истиот код ќе биде тестиран за грешки додека се извршува. Односно во овој блок се пишува кодот за кој очекуваме дека ќе фрли грешка. <span style="font-family: 'Times New Roman',serif;">catch наредбата овозможува да се дефинира блок во кој ќе се пишува код кој ќе се изврши само ако кодот кој е во try делот фрли грешка. <span style="font-family: 'Times New Roman',serif;">Во JavaScript try и catch наредбите се користат заедно.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code try { // Run some code here } catch(err) { // Handle errors here }

code

<span style="font-family: 'Times New Roman',serif;">Пример во кој има грешка при пиувањето. Наместо наредбата alert пишано е adddlert. code var txt = "";

try { adddlert("Welcome guest!"); } catch(err) { txt = "There was an error on this page.\n\n"; txt += "Error description: " + err.message + "\n\n"; txt += "Click OK to continue.\n\n";

alert(txt); }

code 
 * **<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">throw **

<span style="font-family: 'Times New Roman',Times,serif;">throw наредбата дозволува да се креираат сопствени грешки. Точниот технички термин е create или throw an exception. throw наредбата може да се користи заедно со try и catch наредбите со цел да се добие контрола на текот на програмата и да се генерираат сопствени пораки за грешките.

<span style="font-family: 'Times New Roman',serif;">Синтакса: code throw exception code <span style="font-family: 'Times New Roman',serif;">каде exception може да биде JavaScript String, Number, Boolean или Object.

<span style="font-family: 'Times New Roman',serif; line-height: 1.5;">Пример каде корисникот треба да внеси вредност од 5 до 10, а ако внеси што било друго ќе се фрли грешка и ќе се појави соодветна порака за грешката. code <!DOCTYPE html> <meta charset="utf-8"> Testing JavaScript code <script type="text/javascript"> function myFunction { var y=document.getElementById("mess"); y.innerHTML="";

try { var x=document.getElementById("demo").value; if(x=="")   throw "empty"; if(isNaN(x)) throw "not a number"; if(x>10)    throw "too high"; if(x<5)     throw "too low"; } catch(err) { y.innerHTML="Error: " + err + "."; }             }

My First JavaScript Please input a number between 5 and 10: <input id="demo" type="text"> <button type="button" onclick="myFunction">Test Input

code