You are on page 1of 18

Osnove JavaScript-a

Autor: prof. Milan Popovic, milan.popovic@bbs.edu.yu


1. Uvod 2. Umetanje JavaScript programa u HTML dokumente 3. Varijable 1. ta su to varijable? 2. Vrednost varijabli 3. Konver ija podataka 4. Literali 1. !eli brojevi "#ntegers$ 2. %ecimalni brojevi "&loating'(oint$ 3. Logi)ki podaci "*oolean$ 4. Tekstualni podaci "String$ 5. +scape "+scaping Literals$ 5. ,i ovi "-rra.s$ 6. /peratori 1. /peratori pridru0ivanja "-ssignment /perators$ 2. /peratori pore1enja "!omparison /perators 3. -ritmeti)ki operatori "-rit2metic /perators$ 4. Logi)ki operatori "Logical /perators$ 7. JavaScript objekti 8. &unkcije 1. %e3insanje 3unkcije 2. (o ivanje 3unkcije 9. i3 naredba 10. (etlje 1. 3or petlja

2. 42ile petlja 11. Komentari 12. %odatak ' JavaScript objekti


1. Uvod JavaScript je jedan jednostavan programski je ik koji se mo0e koristiti u HTML dokumentima5 U ovom tutorijalu prika ane su samo osnovne karakteristike JavaScript je ika5 ,isu prika ane sve mogu6nosti a programske strukture selekcija i iteracija5 ,ije prika ana s4itc2 naredba7 do55542ile naredba7 tr.55catc2 naredba5 Takodje nije ra matrana -J-8 metodologija7 kao ni na)in de3inisanja korisni)ki2 objekata5 / tome se mo0e na6i vi9e in3ormacija na 44454:sc2ools5com 2. Umetanje JavaScript programa u HTML dokument (retra0iva)i "*ro4sers$ prepo naju JavaScript programe pomo6u posebni2 ;S!<#(T= 555 ;>S!<#(T= tagova koji se mogu pojaviti ili u ;H+-%= ili u ;*/%?= delu HTML dokumeta5 +vo jednog prostog primera koji poka uje mesto gde 6e biti umetnut JavaScript program@ <HTML> <HEAD> <TITLE>Primer JavaScript programa</TITLE> <SCRIPT> (JavaScript program moe biti me!te" ov#e$ </SCRIPT> </HEAD> <%&D'> <SCRIPT> (JavaScript program moe biti me!te" i ov#e$ </SCRIPT> (o tata( HTML #o()me"ta bi*e me!te" ov#e$ </%&D'> </HTML> 3. arija!"e

3.1. #ta su to varija!"e$ Varijable su kao memorija5 Vi mo0ete kreirati varijable da se u njima pamte vrednosti "podaci$5 ,ajbolje je da varijablama dajemo imena koja cemo lako pamtiti i koja 6e nas podse6ati na vrednosti koje su u tim varijablama apam6ene5 ,a primer7 ako 0elite da napravite program kojim 6ete deliti jedan broj sa nekim drugim brojem najbolje je da varijable koje 6ete kreirati na ovete deljenik7 delioc i kolicnik7 a ne recimo brojA7 brojB7 broj:5 Va0no je nati ispravnu sintaksu koja se mora po9tovati pri kreiranju imena varijabli@ ,a iv "ime$ varijable mora po)injati slovom ili donjom crtom "CDC$ Svaki slede6i nak u imenu varijable mo0e biti ci3ra "E'F$ slovo "-'G i>ili a' $5 #majte na umu da je JavaScript osetljiv na velika i mala slova "case'sensitive$5 "To na)i da

MojaVarijabla i mojaVarijabla su dva posebna imena bog velikog i malog slova M na pocetku imena$ (rimeri ispravno dati2 imena varijablama su *rojDpogodaka7 temperaturaFF7 i Dime5 Kada kreirate "deklari9ete$ varijablu van neke 3unkcije7 takva varijabla se na iva globalnom varijablom ato 9to je ona dostupna i celog HTML dokumenta5 Kada se varijabla deklari9e unutar neke 3unkcije7 onda se ona na iva lokalnom varijablom i na raspolaganju je samo JavaScript naredbama i te 3unkcije5 Varijable mogu da sadr0e sve vrste podataka "vidi nani0e7 Vrednosti i varijable7 odeljak :5B$5 %a nekoj varijabli pridru0ite " adate$ vrednost koristite slede6u notaciju@ #e+,e"i( #e+ioc mo,Te( t por)(a - ./ 0/ - 1&v) *) por)() (ori titi vi!e p)ta1/ mo,Te( t/

<ecimo da 0elimo u programu da podelimo deljenik sa deliocem i da re ultat apamtimo u varijabli koli)nik5 To 6emo uraditi slede6om naredbom@ (o+ic"i(-#e+,e"i(/#e+ioc/ Va0no je da pre nego 9to po)nte da pi9ete program ra mislite o njegovoj strukturi "di ajnu$5 %obro je da unapred de3ini9ete i kreirate varijable koje 6e biti kori96ene u programu5 ,a primer7 ako nate da 6ete vi9e puta u programu koristiti jednu te istu tekstualnu poruku7 onda je korisno da odma2 kreirate varijablu poruka i odma2 joj adate predvi1eni tekst5 Tako 6ete mo6i da ovu varijablu koristite kad god vam je potrebna be ponovnog ukucavanja teksta koji ona sadr0i7 a ako po0elite da promenite tekst poruke onda 6ete to uraditi samo na jednom mestu ' tamo gde je poruka kreirana "deklarisana$5 3.2. rednosti i varija!"e

JavaScript ra likuje slede6e tipove vredosti@ *rojeve7 kao HB ili :5AHAIF Logi)ke "*oolean$ vrednosti7 true ili 3alse Stringove7 kao 9to je C(o drav svimaJC null7 specijalni vrensot koja na)i ni9ta5

/vaj relativno mali skup tipova podataka omogu6ava da napravite mnogo korisni2 3unkcija u va9im aplikacijama5 JavaScript ne pravi posebnu ra liku i me1u celi2 i decimalni2 "realni2$ brojeva55 3.3. %onver&ija podataka JavaScript je Cloosel. t.pedC je ik "slabo vodi ra)una o tipovima podataka$ 5 To na)i da ne morate da speci3icirate tip podataka koje 6e varijabla sadr0ati " kod je ika kao sto su !7 !K

K7 !L uvek morate pri deklaraciji varijable da ka0ete i kavu vrstu podataka 6e varijabla mo6i da sadr0i$5 ,a primer7 mo0ete deklarisati jednu varijablu na slede6i na)in@ var o#govor - 02 - kasnije istoj toj varijabli mo0ete adati string "tekstualnu$ vrednost@ odgovor M CHvala vam na svemu555C Gato 9to je JavaScript Cloosel. t.pedCje ik 7 gornja naredba ne6e proi vesti gre9ku "kao 9to bi bio sli)aj u ! je icima$5 ,o i pored toga ovo nije primer dobrog programiranja5 *olje je da varijable kreirate tako da sadr0e uvek isti vrstu podataka " brojeve7 tekst7 logi)ke podatke i sl5$ i da i2 kon istentno koristite u programu "da ne me9ate tipove podataka u istoj varijabli$5 To vam mo0e .natno olak9ati testiranje i debagiranje "otklanjanje gresaka$ va9eg programa5 U naredbama koje uklju)uju broj)ane i string vrednosti svi podaci se konvertuju u string tip podataka5 ,a primer7 posmatrajmo slede6e naredbe@ 3 - 1&#govor ,e 1 4 02 5 - 02 4 1 ,e o#govor1 "/vde 6e nak K o na)avati operaciju spajanja dva stringa7 a ne sabiranje$5 ,a primer ako napi9ete@ por)(a - 1Po6#rav1 4 1 vima1 555onda 6e varijabla por)(a dobiti vrednsost stringa 1Po6#rav vima1$

U gonjim naredbama7 N 6e postati C/dgovor jes HBC 7 a . CHB je odgovorC '. Litera"i Literali se korste da predstavljaju vrednosti u JavaScript programima5 To su 3iksne vrednosti7 a ra liku od varijabli7 koje vi bukvalno adajete u programu5 (rimeri literala su@ AB:H7 C/vo je literalC i tr)e5 '.1. (e"i !rojevi )*ntegers+ !eli brojevi mogu biti i ra0eni udekadnoml "ba a AE$7 2eksadecimalnom "ba a AO$7 i oktalnom "ba a P$ sistemu5 U dekadnom sistemu celi broj se prika uje be vode6i2 nula5 -ko se na po)etku pojavi nula7 onda se smatra da sledi oktalni broja7 a ako se pjavi EN to o na)ava pojavu 2eksadecimalnog broja5 (rimeri celobrojni2 literala su@ HB7 EN&&&7 and ':HI5 '.2. ,ecima"ni )-"oating-point+ !rojevi

%ecimalan broj mo0e imati slede6e delove@ ceo broj7 decimalna ta)ka7 ostatak i a decimalne ta)ke7 eksponent +ksponent je slovo CeC ili C+C i a kojeg se nala i ceo broj sa ili be naka5 (rimeri decimalni2 brojeva su@ :5AHAI7 ':5A+AB7 5AeAB7 and B+'AB '.3. Logi.ki podaci )/oo"ean+ Logi)ki podaci imaju samo dve vrednosti@ true i 3alse5 '.'. Tekstua"ni podaci )String+ String je literal sa E ili vi9e slovni2 nakova ograni)eni2 dvostrukim "C$ ili jednsotrukim "Q$ navodnicima5 +vo nekoliko primera string literala@ Cbla bla blaC Qbla bla blaQ CAB:HC Cprva linija Rn druga linijaC

U uobi)ajene slovne nake7 mogu se koristiti i specijalni nakovi kao u poslednjem primeru goreU sldee6oj tabeli data je lista specijalni2 nakova koje mo0ete koristiti JacaScript stringovima5

Znak \b \f \n \r \t \\

Znaenje backspace form feed new line carriage return tab backslash character

'.0. 1scape Ga sve slovne nake osim a one prika ane u gornjoj tabeli7 kosa crta "backslas2$ nema nikakvo na)eneje osim a navodnike i samu kosu crtu5 Mogu6e je ubaciti navodnik kao deo stringa ako se ispred njega stavi kosa crta5To se na iva escaping " aobila0enje$ navodnika5 ,a primer7 var "avo# - 1&" 7ita roma" 819+at"o r)"o81 o# %or +ava Pe(i*a1 #oc)me"t:;rite("avo#$ <e ltat ovog programskog segmenta bi6e@ /n )ita roman CGlatno runoC od *orslava (eki6a

- ako 0elite da se kosa crta na1e u string7onda tako1e koristite kosu crtu kao escape nak5 ,a primer ako 0elite da nekoj varijabli adate putanju do datoteke c@Rtemp onda to .apisujete ovako@ var <ome - 1c=88temp1 0. 2i&ovi )3rra4s+ ,i je objekat u kojem mo0e da se memori9e vi9e vrednosti i koji ima vi9e svojstava "properties$5 Kada deklari9ete ni 7 morate da mu deklari9ete na iv7 a atim i koliko 6e vrednosti ni sadr0ati5 Va9no je ra umeti da 6e svaka pojedina)na vredost biti memorisana "sme9tena$ u po jednom elementu ni a7 kao i da elemeti startuju od E5 To na)i da 6e prva vrednost u ni u biti sme9tena u E'tom elementu7 druga u prvom elementu i tako dalje5 ,a primer7 ako 0elimo da smestimo AE vrednsoti in naki ni 7 onda 6e elementi ni a biti u opsegu od E do F5 %eklaracija ni a se vr9i na slede6i na)in@ mo,>i6 - "e; Arra5(?@$/ #nicijano7 svi elementi ni a dobijaju vrenost null5 -ko 0elimo da elementima ni a adamo vrednosti onda to radimo naredbama@ mo,>i6A@B - CD/ mo,>i6A?B - 2E/ mo,>i6AFB - 00/ Stavljaju6i u uglaste agrade S T broj elemeta7 mo0emo svakom elementu adati 0eljenu vrednost5 Uo)ite da u gornjem primeru ne postoji element moj,i SAE T7 jer se indeksi elemenata kre6u od E do F5 U JavaScript programima7 me1utim7 du0ina ni a se automatski pove6ava ako .adamo vrednos nekom elementu ni a koji je ve6i od trenutne du0ine ni a5 U slede6em primeru najpre 6emo deklarisati jedan ni sa po)etnom du0inom E7 a atim 6emo dodeliti vredost elementu FF5 To 6e automatski pove6ati du0inu ni a na AEE elemenata5 bo,a - "e; Arra5($/ bo,aAFFB - 1b+)e1/ (o9to su ni ovi objekti7 oni imaju ni svojstava "properties$ koje su unapred de3inisana5,a primer7 mo0ete prona6i koliko ni mo,>i6 ima elemenatan i apamtiti tu vrednost u vaijabli bro,E+eme"ata pomo6u naredbe@ bro,E+eme"ata - mo,>i6:+e"gt</ 5. Operatori JavaScript ima vi9e operatora a ra ne aritmeti)ke7 logi)ke i string operacije5 Mi 6emo ovde navesti samo naj na)ajnije operatore a pridru0ivanje7 kopmaraciju7 kao i aritmeti)ke i logi)ke operatore5

5.1. Operatori pridru6ivanja )3ssignment operators+ /peratorom pridru0ivanja adaje se vrednost varijabli sa leve strane od operatora "M $7 tako 9to se i ra)unava vrednsot i ra a sa desne strane operatora ,a primer@ 3 5 4 ?@/

o na)ava naredbu kojom 6e se najpre i ra)unati bir vrednosti koju trentno sadr0i varijabla . i broja AE7 6e se tako i ra)unata vrednost memorisati u varijabli N5 Mogu6e je skra6eno pisanje a naredbe pridru0ivanja kako poka uje slede6a tabela@

Skraeno Znaenje x += y x =y x != y x "= y x++ x x=x+y x=x y x=x!y x=x"y x=x+# x=x #

Uo)ite da nak M sovde o na)ava pridru6ivanje i da to nije matemati)ki nak a jednako5 -ko je N jednako I a . jednako U7 onda bi 3 - 3 4 5 bio pogre9an matemati)ki i ra 7 ali u JavaScript programu je potpuno legitiman5 ,jime se varijabli N dodeljuje vrednost N K . "AB u ovom slu)aju7 IKU$5 5.2. Operatori pore7enja )(omparison operators+ /peratorima pore1enja se vr9i upore1ivanje dve vrednosti i na osnovu re ultata pore1enja dobija logi)ka vrednost true ili 3alse u avisnoti da li je pore1enje ta)no ili neta)no5 Vrednosti "operandi$ koje se porede mogu biti brojne "numeri)ke$ ili string vrednosti55 Kada se porede stringovi7 pore1enje se vr9i na osnovu standardng leksikogra3skog redoslede slova5 /peratori pore1enja opisani su u slede6oj tabeli5

$perator &ednako '= =( ,ije jednako '-=( .ee od '/( .ee ili jednako '/=(

$pis )aje logiku *rednost true ako su operandi jednaki+ )aje logiku *rednost true ako operandi nisu jednaki+ )aje true ako je le*i operand *ei od desnog )aje true ako je le*i operand *ei ili jednak desnom

%rimer x == y je true ako je x jednako y x -= y je true ako x nije jednako y x / y je true ako je x *ee od y x /= y je true ako je x *ee ili jednako y

0anje od '1( 2ess than or e3ual '1=(

)aje true ako je le*i operand manji od desnog )aje true ako je le*i operand manji ili jednak desnom

x 1 y je true ako je x manje od y x 1= y je true ako je x manje ili jednako y

5.3. 3ritmeti.ki operatori )3rit8metic Operators+ -ritmeti)ki operatori a operande imaju numeri)ke vrednosti "literale ili varijable$ a kao re ultat se dobija jedna numeri)ka vrednsot5 Standardni aritmeti)ki operatori su sabiranje "K$7 odu imanje "'$7 mno0enje "V$7 deljenje ">$ and ostatak pri deljenju "W$5 /vi operatori imaju isto na)enje i u ostalim programskim je icima7 a tako1e i u matematici55 (o9to programeri )esto dodaju i odu. imaju A od varijabli7 JavaScript ima skra6enicu a te operacije7 pa tako mojaVarrKK dodaje A na varijablu mojaVar7 dok mojaVar'' odu ima A od mojaVar5 5.'. Logi.ki operatori )Logica" Operators+ Logi)ki operatori a operande imaju logi)ke "*oolean$ vrednosti7 a kao re ltat operacije ponovo se dobija logi)ka vrednost5 (osmatrajmo slede6u tabelu@

$perator 4potreba and '55( or '88( not '-( i6ra6# 55 i6ra67 i6ra6# 88 i6ra67 -i6ra6

$pis re6ultat je true ako su oba i6ra6a i6ra6# i i6ra67 true+ 4 suprotnom je false+ re6ultat je true ako su ili i6ra6# ili i6ra67 true9 a false samo ako su oba i6ra6a i6ra6# i i6ra67 false+ re6ultat je false akoje i6ra6 true9 a true ako je i6ra6 false+

9:*M1:*; (o9to smo nau)ili kori96enje osnovni2 aritmeti)ki2 i logi)ki2 operatora sada i2 mo0emo koristiti i ajedno5 (oku9ajte da ra umete slede6e primere@ -ko je N M H i . M U7 onda ""N K . K B$ MM A:$ XX """N K .$ > B$ MM B$ daje &-LS+5 Ga9to? -ko je N M H i . M U7 onda "". ' N K F$ MM AB$ YY ""N V .$ MM B$ daje T<U+5 Ga9to? -ko je N M H i . M U7onda J""N>B K .$ MM F$ YY ""N V ".>B$$ MM B$ daje &-LS+5 Ga9to? <. JavaScript o!jekti JavaScript je objektno orjentisan je ik5 Kada pomo6u va9eg pretra0iva)a "bro4ser'a$ pristupite nekom HTML dokumentu na 4eb'u7 onda se kreira ni JavaScript objekata sa svojstvima i mogu6nostima koje se ba iraju na HTML'u i drugim delovima sadr0aja u)itanog dokumenta5 /vi objekti su pove ani 2ijerar2ijski u skaldu sa strukturom HTML stranice5

/d svi2 objekata naj)e96e su u upotrebi objekti ;i"#o; i #oc)me"t5 /bjekat ;i"#o; ima metod koji vam omogu6ava da kreirate novi 4indo4s pomo6u ope"($ and c+o e($ met2oda5 /n vam tako1e omogu6ava da kreirate male pro ore "message boNes$ kori96enjem a+ert($G co"Hirm($G i prompt($ meto#a5 Svaki od ovi2 mali2 pro ora prika uje tekst koji stavljate i me1u agrada5 ,a primer7 slede6a naredba@ a+ert(1&vo ,e bo( 6a pri(a6 por)(e1$

+++otvara mali pro or sa porukom5 Vide6ete kako to 3unkcioni9e ako kliknete ovde5
/bjekat #oc)me"t predstavlja HTML stranicu5 /bjekat #oc)me"t sadr0i ni ove u kojima su memorisane sve komponente od koji2 se sastoji sadr0aj va9e 4eb stranice kao 9to su slike7 linkovi7 3orme itd5 Vi mo0ete pristupati svim tim elementima i sa njima pove anim metodama preko ovi2 ni ova5 /bjektima i ove pre'de3inisane 2ijerar2ije se mo0e pristupati7 i mogu se modi3ikovati5 %a pristupite nekom od elemenata7 morate speci3icirati njegov na iv kao i na ive svi2 njegovi2 predaka una ad sve do objekta #oc)me"t5 Ta)ka7 Q5Q7 se koristi kao separator u toj 2ijerar2iji imena5 Zeneralno govore6i7 svaki element ili objekat ima ono ime koje je dato u ,-M+ atributu oodgovaraju6eg HTML taga5 ,a primer7 slede6 konstrukcija se odnosi na vrednost "value$ tekstualnog podatka "teNtA$ koji je deo 3orme )ije je ime mojaforma a koja je deo teku6eg dokumenta5 #oc)me"t:mo,aHorma:te3t?:va+)e #stom tom elementu se mo0e pristupiti i preko gore pomenuti2 ni ova5 U gornjem primeru7 ako je 3orma mojaforma bila prava 3orma u dokumentu i ako je text1 bio tre6e polje u 3ormi7 onda bi isti element moga da bude re3erisan i na slede6i na)in@ #oc)me"t:Horm A@B:e+eme"t A2B:va+)e &unkcije "metode$ odjekata mogu biti po ivane na sli)an na)in5 ,a primer7 slede6a naredba resetuje "bri9e$ drugu 3ormu u dokumentu5 #oc)me"t:Horm A2B:re et($/ Slede6a slika prika uje 2ijerar2iju HTML objekata@

=. -unkcije &unkcije su jedan od 3undamentalni2 gradivni2 blokova JavaScript programa5 &unkcija je skup naredbi koje i vr9avaju neki speci3i)an adatak5 &unkcija se sastoji od slede6i2 delova@ Klju)ne re)i @ 3unction ,a iva "imena$ 3unkcije Liste argumenata sme9tene u malim agradama i sa apetama kao separatorima ,i a nardebi unutar veliki2 agrada@ [ \

=.1. ,e>inisanje >unkcije Kada se de3ini9e 3unkcija7 veoma je va0no da se vodi ra)una o sintaksi5 Ga ra liku od HTML' a7 JavaScript je osetljiv na velika i mala slova7 pa je va0no da 3unkcijske naredbe budu unutar veliki2 agrada[ \7 da argumenti budu ra dvojeni apetama7 kao i da koristite ta)ki are na kraju svake naredbe5 Tako1e je va0no da uo)ite ra liku i me1u de3inisanja i po ivanja 3unkcije5 %e3inisanje 3unkcije imenuje 3unkciju i speci3icira 9ta 6e biti ura9eno kada se 3unkcija po ove5 &unkcija se de3ini9e unutar ;S!<#(T=555;>S!<#(T= tagova7 koji su sme9teni

unutar ;H+-%=555;>H+-%= tagova5 (ri de3inisanju 3unkcije tako1e se deklari9u i varijable koje 6ete po ivati u toj 3unkciji5 +vo jednog jednostavnog primera de3inicije 3unkcije@ H)"ctio" por)(a($ I a+ert(J&vo ,e te( t por)(eJ$/ K Uo)ite agrade koje se nala e odma2 posle imena 3unkcije5 /ne su obave ne )ak i kada i me1u nji2 nema ni9ta5 -ko 0elite da pri po ivanju 3unkcije prenesete neki parametar "argument$7 onda takve parametre stavljate i me1u ovi2 agrada5 (arametri su dodatne in3ormacije koje mogu biti ra li)ite pri raunim po ivima 3unkcije5 (arametri se sme9taju u varijablama i njima se pristupa kao i svim drugim varijablama5 +vo primera 3unkcije sa parametrima@ H)"ctio" #r)gapor)(a(rec$ I a+ert(rec 4 J ,e re7 "a (o,) K Kad po ivate ovu 3unkciju morate joj preneti i parametar "recimo re) koju je korisnik kliknuo$5 Gatim 6e 3unkcija koristiti tu re)5 (ri svakom po ivu 3unkcije mo0e se prenosti druga re) kao parametar7 pa 6e u skladu sa tim i alert poruka biti svaki put druga)ija5 Mo0e se prenositi i vi9e parametara ako se ra dvoje apetama5 Sledi primer 3unkcije sa vi9e parametara@ H)"ctio" trecapor)(a(;or#Gpa ;or#$ I t<e ;or# t<at 5o) c+ic(e# o": T<e ;or# i J 4 pa ;or#$/ te (+i(")+iJ$/

co"Hirm(;or# 4 J i

ecret pa K

=.2. 9o&ivanje >unkcije (o ivanjem 3unkcije se apravo i vr9ava akcija koju ona de3ini9e5 Kada po ovete 3unkciju7 to se obi)no )ini u */%? delu HTML stranice7 i obi)no se 3unkciji prenosi i parametar5 (arametar je varijabla koja dobija vrednost van same 3unkcije a 3unkcija je mo0e koristiti tokom i vr9avanja5 +vo primera po ivanja 3unkcije@

poruka'(:

Kao drugi primer posmatrajmo po iv 3unkcije i nekog HTML elementat@ <A HREL-1Mtop1 o"C+ic(-1#r)gapor)(a(JtopJ$1>top</A> /vo 6e vas vratiti na po)etak strane u pojavu poruke@ Ctop je re) koju ste kliknuliC (robajte@ top - evo jo9 jednog primera sa vi9e parametara@ <A HREL-1Mtop1 o"C+ic(-1trecapor)(a(Ja;e omeJGJpa"#a J$1>a;e ome</A> ?. i> nared!a iH 555else naredba i vr9ava jedan ni komandi ako je adati uslov ispunjen7 a drugi ni ako uslov nije ispunjen /snovna ideja i3 naredbe se mo0e slikovito objasniti slede6om re)enicom@ C-ko sutra bude lepo vreme i6i 6emo na piknik7 ako ne bude lepo vreme gleda6emo televi iju5C Kao 9to vidite ideja je sasvim intuitivna7 a takva je i sintaksa i3 naredbe@ if (uslov$ I "are#be1 K

ili
if (uslov$ I naredbe1 K else I naredbe2 K uslov mo0e biti bilo koji JavaScript logi)ki i ra koji kao re ultat daje true ili 3alse5 /ko uslova se stavljaju male agrade5 +vo primera@ if (vreme -- J#obroJ$ I i#emoN"aNi6+et(mi$/ pravimoNpi("i((mi$/ K else I o ta,emoN(o#N()ce(mi$/ g+e#amoNTO(mi$/ K 1@. 9et"je (etlje su i u etno korisno sredstvo a programiranje5 (etljama se lako upravlja repetitivnim radnjama5 ,i ovi nam ovde odma2 padaju na um kao struktura pogodna a odradu u petlji5 <ecimo da 0elimo da svakom elementu ni a dodamo A5 /dma2 je intuitivno jasno da je taj adatak najlak9e ostvariti kori96enjem ponavljanja u petlji5

%va naj)e96a oblika petlje su Hor i ;<i+e petlje@ 1@.1. >or pet"je Hor petlja se sastoji od tri i ra a atvorena u male agrade i ra dvojena ta)ka' are om "]$ i a )ega sledi blok naredbi koje se u petlji i vr9avaju5 /vo vam mo0e i gledati malo kon3u no5 # stvarno7 te9ko je ra umeti Hor petlju dok se ne vidi primer5 Hor petlja i gleda ovako@ Hor (inicijalni-izraz/ uslov-zavrsetka/ inkremetacioni-izraz$ I naredbe K inicijalni-izraz se tipi)no koristi da se inicijali uje broja) varijabla5 U tom i. ra u se naj)e96e i deklari9e varijabla broja)a klju)nom re)ju var5 uslov-zavrsetka se ispituje pri svakom prolasku kro petlju5 -ko je uslov ispunjen "true$7 nardbe 6e biti i vr9ene5 Kada uslov prestane da bude ispunjen "postane 3alse$ prestaje i i vr9avanje petlje5 inkrementacioni-izraz se koristi naj)e96e a pove6anje vrednosti broja)a5 naredbe predstavljaju blok naredbi koje se i vr9avaju sve dok je uslov ispunjen5 Taj blok se mo0e sastojati od jedne ili vi9e naredbi5 (osmatrajmo slede6i primer petlje5 (etlja po)inje deklarisanjem varijable i i inicijali acijom njene vrednosti na E5 %alje se proverava uslov da li je vrednost varijable i manja od :7 pa ako jeste i vr9avaju se dve naredne jedna a drugom7 nakon )ega se vrednost varijable i uve6ava a A5 /vaj proces se nastavlja sve dog varijabla i ne dobije vrednost H kada se prekida dalji rad petlje var " - @/ Hor (var i - @/ i < E/ i44$ I " 4- i/ a+ert(1T<e va+)e oH " i K

"o; 1 4 "$/

%robajte; <liknite o*de


1@.2. A8i"e pet"je ;<i+e petlja7 iako na prvi pogled tako ne i gleda je apravo bli nakinja 3or petlje5 /ve dve petlje mogu amenjjivati jedna drugu ' i stvar je u tome 9to je nekada pognije kori96enje jedne a nekada druge petlje55 ;<i+e naredba kreira petlju u kojoj se ispituje uslov i ako je ispunjen i vr9ava blok naredbi5 (etlja se onda ponavlja sve dok je uslov ispunjen "true$5 Sintaksa ;<i+e petlje se ra likuje od Hor pet+,e i i6g+e#a ova(o@

while (uslov$ I naredbe K uslov se proverava pre svakog prolaska kro petlju5 -ko je uslov ispunjen "true$ i vr9avaju se naredbe i bloka unutar viti)asti2 agrada5 Kada uslov postane 3alse7 petlja se prekida i nastavlja se sa i vr9avanje naredbi koje slede i a petlje5 U slede6em primeru ;<i+e petlja se ponavlja sve dok je n manje od tri5 var " - @/ var 3 - @/ ;<i+e(" < E$ I "44/ 3 4- "/ a+ert(1T<e va+)e oH " i K

1 4 " 4 1: T<e va+)e oH 3 i

1 4 3$/

%robajte; <liknite o*de


11. %omentari Komentari vam omogu6avaju da stavljate bele9ke u va9 program5 *ele9ke su va0ne jer omogu6avaju drugima da ra umeju va9 program ' recimo da sa naju 9ta je adatak 3unkcija koje ste de3inisali ili varijabli koje ste deklarisali5 *ele9ke 6e i vama pomo6i da se podsetite ako du0e vreme niste gledali va9 progrem7 pa ste mnoge detalje aboravili5 U JavaScript programima7 mo0ete imati jednolinijske ili vi9elinijske komentare5 Jednolinijski komentari se o na)avaju sa dve kose crte7 >> koje se nala a na po)etku komentara 5 To o na)ava da sve 9to bude napisano u toj liniji7 posle >>7 jeste komentar i ne6e se i vr9avati kao program5 Ga vi9elinijske komentare koristi se a po)etak kosa crta i ve da >V a a kraj ve da i kosa crta V> 5 # me1u ove dve o nake mo0e da stoji bilo kakav tekst koji se tretira kao komentar a me kao program +vo nekoliko primera komentara u JavaScript'u5 // &vo ,e primer ,e#"o+i"i, (og (ome"tara: /P &vo ,e primer vi!e+i"i, (og (ome"taraG a+i ) ,e#"o, +i"i,i: P/ /P &vo ,e primer vi!e+i"i, (og (ome"tara ) vi!e +i"i,a: P 9ve6#a (P$ "a po!et() ove +i"i,e ,e opcio"a i #opri"o i bo+,o, 7it+,ivo ti: P I to vaQi i 6a 6ve6#) ) ovo, +i"i,i: P/

12. Dodatak - JavaScript objekti

=ierarchy $bjects

Object >indow

Properties defaultStatus frames opener parent scroll self status top window defaultStatus frames opener parent scroll self status top window hash host hostname href pathname por protocol search length forward go appBode,ame app,ame app.ersion mime?ypes plugins userCgent alinkBolor anchors applets area bgBolor cookie

Methods alert blur close confirm focus open prompt clear?imeout set?imeout alert blur close confirm focus open prompt clear?imeout set?imeout reload replace

Event Hand ers on2oad on4nload on@lur onAocus

Arame

none '?he on2oad and on4nload e*ent handlers belong to the >indow object(

2ocation

none

=istory

back

none

,a*igator

ja*aDnabled

none

document

clear close open write writeln

none 'the on2oad and on4nload e*ent handlers belong to the >indow object+

fgBolor forms images last0odified linkBolor links location referrer title *linkBolor image border complete height hspace lowsrc name src *space width action elements encoding Aile4pload method name target default.alue name type *alue none none

form

submit reset

onSubmit onEeset

text

focus blur select

on@lur onBharge onAocus onSelect

@uilt in $bjects Object Crray Properties length Methods join re*erse sort xx Event Hand ers none

)ate

none

get)ate none get)ay get=ours get0inutes get0onth getSeconds get?ime get?imeZoneoffset getFear parse prototype set)ate set=ours set0inutes set0onth setSeconds set?ime setFear toG0?String to2ocaleString 4?B anchor big blink bold charCt fixed fontBolor fontSi6e index$f italics lastHndex$f link small split strike sub substring sup to2owerBase to4pperBase >indow

String

length prototype

Matemati.ke >unkcije;
Mat<:ab (a$ Mat<:aco (a$ Mat<:a i"(a$ Mat<:ata"(a$ Mat<:ata"2(aGb$ Mat<:cei+(a$ Mat<:co (a$ Mat<:e3p(a$ Mat<:H+oor(a$ Mat<:+og(a$ Mat<:ma3(aGb$ Mat<:mi"(aGb$ Mat<:po;(aGb$ Mat<:ra"#om($ Mat<:ro)"#(a$ Mat<: i"(a$ Mat<: Rrt(a$ Mat<:ta"(a$ // // // // // // // // // // // // // // // // // // ap o+)t"a vre#" t o# a ar() (o i") o# a ar() i") o# a ar() ta"ge" o# a ar() ta"ge" o# a/b ceo bro, "a(b+ii bro,) a a+i "e ma",i o# a (o i") o# a e( po"e"t o# a ceo bro, "a,b+ii bro,) a a+i "e ve*i o# a +ogaritam ba6e e ve*i o# bro,eva a i b ma",i o# bro,eva a i b a "a tepe" b p e)#o +)7a,a" bro, ) op eg) o# @ #o ? ceo bro, "a,b+ii bro,) a i") o# a (va#rat"i (ore" o# bro,a a ta"ge" o# a

&a*aScript and @rowser $bjects Bomplete Iuick Eeference