300 likes | 547 Views
8. JavaScript. Uvod, varijable, naredbe, petlje. Što je JavaScript?. JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer, Mozilla, Firefox, Netscape, Opera).
E N D
8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac
Što je JavaScript? • JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer, Mozilla, Firefox, Netscape, Opera). • Cilj kreiranja JavaScript jezika bio je dodati interaktivnost HTML stranicama • Skriptni jezici su programski jezici manjih mogućnosti, koji se sastoje od od izvršnog računalnog koda, obično ugrađenog u HTML stranice • JavaScript je interpreter, što znači da se skripta izvršava odmah naredbu po naredbu, bez prethodnog prevođenja (compiliranja) cijelog programa i kreiranja izvršne datoteke. • JavaScript je javno raspoloživ skriptni jezik (nije potrebna licenca za korištenje) M. Zekić-Sušac
Razlika JavaScript vs. Java • JavaScript nije isto što i Java, to su dva potpuno različita jezika • JavaScript je samo skriptni jezik, čiji standard definira organizacija ECMA (www.ecma-international.org) • Java je pravi objektni programski jezik za izradu aplikacija, kreiran od strane tvrtke Sun Microsystems, u rangu s jezicima C, C++, C#, i dr. M. Zekić-Sušac
Što sve omogućava JavaScript? • Programiranje u okviru HTML stranica • Pretvaranje dinamičkog teksta u HTML stranicu – npr. ako se neka varijabla pod nazivom “name” želi ispisati u okviru HTML stranice, može se napisati skriptna naredba: document.write("<h1>" + name + "</h1>") • Reagiranje na događaje – moguće je postaviti da se skripta izvršava kada se dogodi neki događaj, npr. kada se stranica učita, ili kada korisnik klikne na određeno dugme ili drugi HTML element • Čitanje i pisanje HTML elemenata - JavaScript može pročitati i promijeniti sadržaj nekog HTML elementa • Validiranje (provjeru ispravnosti i vjerodostojnosti) podataka - JavaScript može validirati podatke prije nego se pošalju na server, čime se server oslobađa dodatne obrade • Detektiranje preglednika kojeg korisnik upotrebljava – na osnovu tog prepoznavanja preglednika JavaScript može učitati drugačiju stranicu ovisno o pregledniku tako da se učita stranica koja je posebno dizajnirana za taj preglednik • Kreiranje “kolačića” (cookies) - JavaScript može pohraniti i učitati informacije o korisnikovom računalu M. Zekić-Sušac
Povijest razvoja JavaScript-a • 1996. - Brendan Eich iz Netscape-a izmislio je jezik JavaScript za Netscape Navigator 2.0, i od te se godine pojavio u svim Netscape i Microsoft preglednicima • 1997. – nastaje prva inačica standarda za taj jezik razvijenog od strane ECMA. Standard je nazvan ECMA-262. • 1998. ECMA-262 standard za JavaScript odobren je od strane međunarodnog ISO (ISO/IEC 16262) standarda 1998. • Standard za ovaj jezik se i dalje razvija. M. Zekić-Sušac
Umetanje JavaScript-e u HTML stranicu • Skripta mora započeti HTML oznakom (tagom) <script> • Primjer jednostavne Java skripte koja na stranici ispisuje poruku “Hello, world”: <html> <body> <script type="text/javascript"> document.write("Hello, World!"); </script> </body> </html> • Za pogled na primjer kliknite na P8_Primjer1.html • Za pogled na primjer u okviru W3C tutorial-a, kliknite na: http://www.w3schools.com/js/tryit.asp?filename=tryjs_text Tag kojim započinje Java skripta Naredba JavaScript-a koja ispisuje poruku “Hello, World” na ekranu M. Zekić-Sušac
Naredba <script> • ključna riječ <script> označava da na tom mjestu u html stranici počinje skripta • atribut type=“attribute” definira koji skriptni jezik će se koristiti u toj skripti • Naredbe <script type="text/javascript"> .... </script> označavaju početak i kraj Java skripte. M. Zekić-Sušac
Naredba za ispis teksta • Naredba: document.write(“neki tekst"); koristi se za ispis teksta na zaslonu (obavezno staviti znak “;” na kraju naredbe) • Kada bismo ovu naredbu napisali bez početnog <script> tag-a, ona se ne bi izvršila, nego bismo na stranici dobili ispis ove cijele naredbe. Isto će se dogoditi ako preglednik ne podržava JavaScript-e. • Kako bi se spriječio prikaz naredbi skripti kod preglednika koji ne podržavaju JavaScript, preporuča se u tom slučaju staviti naredbe skripte pod komentar, npr. <!-- document.write("Hello World!"); //--> Tako preglednik neće prikazati naredbe skripte. M. Zekić-Sušac
Gdje postaviti JavaScript JavaScript se može postaviti u: • tijelo stranice (body) – tada će se skripta izvršiti odmah čim se stranica učita. Takve skripte generiraju neki dio sadržaja stranice. • zaglavlje stranice (head) – izvršit će se kad se pozove ili kad se izvrši neki događaj. U zaglavlje se obično smještaju neke funkcije koje se kasnije pozivaju iz tijela stranice. • vanjsku datoteku – koristi se kada više stranica trebaju koristiti jednu istu skriptu. Tada se skripta pohranjuje u neku datoteku s nastavkom .js, a poziva iz stranice na sljedeći način: <html> <head> <script src="xxx.js"></script> </head> Naziv datoteke u kojoj je skripta M. Zekić-Sušac
Naredbe u JavaScript-u • Naredba ili izjava (eng. statement) u JavaScriptu je naredba pregledniku koja mu govori što treba raditi. • Npr. ova naredba govori pregledniku da treba ispisati poruku “Zdravo!” na web stranici: document.write(“Zdravo!"); • Točka-zarez na kraju naredbe nije obavezna ako svaku naredbu pišemo u novi red. Međutim, ako se piše više naredbi u istom redu, obavezno ih je odijeliti sa “;” • Naredbe se izvode slijedno kako su napisane. M. Zekić-Sušac
Uređivanje teksta • Za uređivanje teksta koji će ispisati na stranici iz neke Java skripte, mogu se umetati html tagovi unutar zagrade u naredbi za ispis, npr. na sljedeći način: • <script type="text/javascript"> document.write("<h1>Moja prva stranica</h1>"); document.write("<p>Ovo je prvi odjeljak</p>"); document.write("<p>Ovo je drugi odjeljak</p>"); </script> M. Zekić-Sušac
JavaScript blokovi • Blokovi su skupine naredbi koje se izvršavaju zajedno, te se stavljaju u vitičaste zagrade, npr.: <script type="text/javascript"> { document.write("<h1>Naslov</h1>"); document.write("<p>Prvi odjeljak</p>"); document.write("<p>Drugi odjeljak</p>"); } </script> • Upotreba blokova: kada se skupina naredbi treba izvršiti ako je ispunjen neki uvjet, ili u nekoj funkciji M. Zekić-Sušac
Umetanje komentara • Komentari se koriste za različita objašnjenja unutar skripte • Moguće je koristiti komentare u jednoj liniji ili kroz više linija 1) Komentari u jednoj liniji - počinju znakom “//” i traju do kraja te linije: <script type="text/javascript"> // Ovdje dolazi naslov: document.write("<h1>Naslov</h1>"); // Ovdje dolaze dva odjeljka: document.write("<p>Ovo je prvi odjeljak</p>"); document.write("<p>Ovo je drugi odjeljak</p>"); </script> 2) Komentari kroz više linija – počinju znakom “/*” i traju do znaka “*/”: /* Ovaj komentar može trajati kroz više linija, sve dok se naiđe na znak */ M. Zekić-Sušac
Varijable u JavaScriptu • Varijable su “kontejneri” (eng- containers” za pohranu informacija • Nazivi im mogu biti proizvoljni, prvi znak u nazivu varijable mora biti slovo (JavaScript je osjetljiv na velika i mala slova) • Varijabla može pohraniti neku vrijednost (tekstualnu ili numeričku), ili neki izraz, npr: • x=5; duljina=x+15; ime=“Pero”; • Vrijednosti varijabli mogu se promijeniti za vrijeme izvođenja skripte • Varijable prije upotrebe treba deklarirati M. Zekić-Sušac
Deklaracija varijabli • Da bismo deklarirali nešto kao varijablu, koristi se ključna riječ “var” na sljedeći način: var x; • Vrijednost varijabli može se dodijeliti u istoj liniji u kojoj se i deklarira varijabla: var x=5; • Ili u posebnoj liniji koda: var x; x=5; • Ako se varijabla na deklarira, nego joj se odmah dodijeli vrijednost, tada se ona automatski deklarira kao varijabla M. Zekić-Sušac
Operatori u JavaScriptu • U JavaScriptu se najčešće koriste dvije vrste operatora: • Aritmetički operatori (+,-,*,/,%, ...) • operatori za pridruživanje vrijednosti (najčešće “=“) • Ostali operatori za pridruživanje mogu biti: • += - označava pridruživanje zbrajanja, npr. x+=y znači: x=x+y • *= - označava pridruživanje množenjem, npr. x*=y znači: x=x*y, itd. M. Zekić-Sušac
Aritmetički operatori U JavaScript-u koriste se ovi aritmetički operatori: M. Zekić-Sušac
Upotreba “+” operatora na tekstu • Operator “+” može se koristiti na tekstu za spajanje više tekstualnih nizova u jedan, npr. txt1="What a very "; txt2="nice day."; txt3=txt1+txt2; • Ili za umetanje praznih mjesta između teksta, npr. txt1="What a very"; txt2="nice day."; txt3=txt1+" "+txt2; • Nakon izvršavanja ovih naredbi dobiva se rezultat: What a very nice day. M. Zekić-Sušac
Spajanje teksta i broja • Operator “+” može se koristiti i za spajanje tekstualnog niza i brojčane vrijednosti, npr. • x=5+5; document.write(x); Rezultat: 10 b) x=5+”5”; document.write(x); Rezultat: 55 Opće pravilo: ako se spaja broj i tekst (string), rezultat će biti tipa tekst (string). M. Zekić-Sušac
Operatori uspoređivanja • Koriste se kako bismo napravili usporedbu vrijednosti i odredili koja će se akcija dogoditi ovisno o tome da li je izraz istinit ili lažan • Primjer: if (age<18) document.write(“Premlad"); M. Zekić-Sušac
Logički operatori Koriste se za određivanje logike između izraza. Najčešći logički operatori su: • && - logičko “i” (and) • || - logičko “ili” (or) • ! – logičko “ne” (not) Primjeri: if (age < 18 && age > 70) document.write(“Nije za rad"); if (age==6 || age==7) document.write(“Dijete za školu"); M. Zekić-Sušac
Petlja if • Ova petlja koristi za uvjetno izvršavanje jedne ili više naredbi (tj. ako je uvjet ispunjen izvršavaju se neke naredbe, a ako uvjet nije ispunjen, ne događa se ništa) • Sintaksa: if (uvjet) { naredbe koje će se izvršiti ako je uvjet ispunjen } Primjer: if (time<10) { document.write("<b>Good morning</b>"); } M. Zekić-Sušac
Upotreba if petlje i funkcije za vrijeme i datum • U ovom primjeru najprije se u varijablu d sprema sistemski datum, zatim se u varijablu time sprema samo vrijeme iz tog datuma, a zatim se u petlji if ispisuje poruka “Dobro jutro!” ako je vrijeme manje od 10h: <script type="text/javascript"> var d=new Date(); var time=d.getHours(); if (time<10) { document.write("<b>Dobro jutro!</b>"); } </script> Spremanje sistemskog datuma u varijablu “d”, a vremena u varijablu “time” M. Zekić-Sušac
Petlja if...else • Ova petlja koristi za uvjetno izvršavanje jedne ili više naredbi (tj. ako je uvjet ispunjen izvršavaju se neke naredbe, a ako uvjet nije ispunjen, izvršavaju se druge naredbe) • Sintaksa: if (uvjet) { naredbe koje će se izvršiti ako je uvjet ispunjen } else { naredbe koje će se izvršiti ako uvjet nije ispunjen } M. Zekić-Sušac
Primjer if...else petlje <script type="text/javascript"> /*Ova skripta će ispisati poruku “Dobro jutro” ako je vrijeme manje od 10h, a u suprotnom će ispisati poruku “Dobar dan” */ var d = new Date(); var time = d.getHours(); if (time < 10) { document.write("Good morning!"); } else { document.write("Good day!"); } </script> M. Zekić-Sušac
Petlja if...else if ... else • Ova petlja koristi se u slučaju kada ako uvjet nije ispunjen treba provjeriti novi uvjet • Sintaksa: if (uvjet1) { naredbe koje će se izvršiti ako je uvjet ispunjen } else if (uvjet2) { naredbe koje će se izvršiti ako je uvjet2 ispunjen } else { naredbe koje će se izvršiti ako uvjet2 nije ispunjen } M. Zekić-Sušac
Petlja switch • Ova petlja koristi se kada se želi provjeriti nekoliko vrijednosti varijabli ili izraza, te izvršiti jedan od nekoliko skupova naredbi • Sintaksa: switch(n) { case 1: naredbe iz bloka1 break; case 2: naredbe iz bloka2 break; default: naredbe koje će se izvršiti ako je n različit od 1 i 2 } Varijabla kojoj se ispituje vrijednost ovdje je nazvana “n” M. Zekić-Sušac
Primjer upotrebe petlje switch script type="text/javascript"> // Skripta će ispisati različite poruke ovisno koji je dan u tjednu var d=new Date(); theDay=d.getDay(); switch (theDay) { case 5: document.write("Finally Friday"); break; case 6: document.write("Super Saturday"); break; case 0: document.write("Sleepy Sunday"); break; default: document.write("I'm looking forward to this weekend!"); } </script> M. Zekić-Sušac
Literatura: • W3C, JavaScript Tutorial, http://www.w3schools.com/js/default.asp, 11.04.08. M. Zekić-Sušac