Professional Documents
Culture Documents
Java Script
Java Script
Java Script
JavaScript
Uvod
(X)HTML u jednom trenutku postaje
ograniavajui faktor
Potrebna je nova tehnologija za
realizaciju dinamikih delova
aplikacije
Uvod
Decembar 1995.god, Netscape i Sun
su predstavili JavaScript 1.0,
originalno nazvan LiveScript
Microsoft prati sa jezikom JScript
ECMAScript 5.1, ili ISO/IEC 16262
standard
Danas Netscape, odnosno Mozilla, i
Microsoft standardi su identini u
preko 95% sluajeva
Reference
Osobine
Platformski neutralan
Modularno programiranje
Integrisanost sa (X)HTML-om
Nema velikih slinosti sa Javom
1. Osnove JavaScript-a
Tag
Komentari
Prikaz
Promenljive i njihovi tipovi
Operatori
Funkcije
Objekti
Izvravanje koda
U okviru (X)HTML koda:
<script type=text/javascript">
...JavaScript kod;
</script>
Ili u eksternom fajlu:
<script type=text/javascript" src="
jskod.js">
</script>
Ili nekad bez script taga
Naredba se zavrava taka zarezom ;
Komentari
Prikaz - write
Primer:
<script type=text/javascript">
document.write(<b>Prvi
red</b><br /><i>Drugi red</i>);
</script>
Rezultat primera:
Prvi red
Drugi red
Promenljive
Imena promenljivih
var
Tipovi podataka
Deklaracija tipova
Deklaracija tipova u
JavaScript-u
JavaScript interpreter
Null vrednost
Vrednost null je
Tipovi podataka u
JavaScript-u
Operatori
Aritmetiki
Na nivou bita
Relacionalni
Logiki
Aritmetiki operatori
Operator
Opis
Operator
Opis
sabiranje
+=
sabiranje
dodela
oduzimanje
-=
oduzimanje
dodela
mnoenje
*=
mnoenje
dodela
deljenje
/=
deljenje
dodela
moduo
%=
Moduo
dodela
++
inkrement
--
dekrement
Aritmetiki operatori
a = 1 + 1;
b = a * 3;
c = b / 4;
d = b a;
e = -d;
document.write(a, b, c, d, e, su , ,a,
,b, ,c, ,d, ,e);
Nakon izvravanja prethodnog primera dobija se
sledei tekst na ekranu:
a, b, c, d, e, su 2 6 1.5 4 -4
Na nivou bita
Operator
Upotreba
Opis
Logiko I (AND)
a&b
a|b
Logiko eksluzivno
ILI (XOR)
a^b
Logiko NE (NOT)
~a
Pomeranje ulevo
a << b
Pomeranje udesno
sa znakom
a >> b
Pomeranje udesno
sa nulama
a >>> b
Na nivou bita
15
Logiki operatori
Operator
Upotreba
Opis
I (&&)
ILI (||)
expr1 || expr2
NE (!)
!expr
Logiki
a = true;
b = false;
c = a || b;
d = a && b;
f = (!a && b) || (a && !b);
g = !a;
document.write( " a = " + a + "<br />" );
document.write ( " b = " + b + "<br />" );
document.write ( " c = " + c + "<br />" );
document.write ( " d = " + d + "<br />" );
document.write ( " f = " + f + "<br />" );
document.write ( " g = " + g);
Operatori poreenja
Operator
Upotreba
Opis
Jednakost (==)
Nejednakost (!=)
Vee (>)
Manje (<)
Jednako bez
konverzije
tipova (===)
Razliito bez
konverzije
tipova (!==)
Operatori poreenja
a = 4;
b = 1;
c = a < b;
d = a == b;
document.write( c = + c + <br /> );
document.write ( d = + d );
Rezultat izvravanja prethodnog primera
je
c = false
d = false
Funkcije
Deklaracija funkcija
Deklaracije funkcije se moe nai u
zaglavlju i telu (X)HTML koda, ali
preporuivo je da se smesti u
zaglavlje (X)HTML koda.
Sintaksa za definisanje funkcije je :
function imeFunkcije(parametri) {
naredbe;
}
Pozivanje funkcije
Naredba return
return 8;
return p*m;
Ugraene funkcije
Na primer:
Primer
Primer deklaracije funkcije:
function calculate(a,b,c) {
d = (a+b) * c;
return d;
}
Primer poziva funkcije:
var x = calculate(4,5,9);
document.write("x je ", x, "<br />");
var y = calculate((x/3),3,5);
document.write("y je ", y);
Rezultat primera:
x je 81
y je 150
Objekti
Kreiranje objekta sa
metodom
Primer metoda objekta:
function mojkrug(x,y,r)
{ this.xkord = x;
this.ykord = y;
this.radius = r;
this.povrsina = izrPovrsinu;
this.obim = function () {
return ( Math.PI * this.radius * 2 ); };
this.pomeri = pomeriKrug; }
function izrPovrsinu() {
return ( Math.PI * this.radius * this.radius ); }
function pomeriKrug(xPom,yPom) {
this.xkord += xPom; this.ykord += yPom; }
Kreiranje objekta sa
metodom
Alternativni primer kreiranja metoda objekta:
function mojkrug(x,y,r) {
this.xkord = x;
this.ykord = y;
this.radius = r; }
mojkrug.prototype.povrsina = function () {
return ( Math.PI * this.radius * this.radius );}
mojkrug.prototype.obim = function () {
return ( Math.PI * this.radius * 2 ); };
mojkrug.prototype.pomeri = function (xPom,yPom)
{ this.xkord += xPom; this.ykord += yPom; };
Korienje metoda
Primer korienja metoda iz prethodnog primera:
var testkrug = new mojkrug(3,4,5);
testkrug.pomeri(2,3);
document.write( Povrina kruga je ' +
testkrug.povrsina() );
document.write( <br />Obim kruga je ' +
testkrug.obim() );
Rezultat prethodnih komandi je:
Povrina kruga je 78.53981633974483
Obim kruga je 31.41592653589793
Ugraeni objekti
Array - niz
RegExp uzorci za pretraivanje
String - znakovni niz
Date vreme
Event objekti koje generiu dogaaji
Boolean logika promenljiva
Math - Matematiki objekt
DOM (X)HTML i JavaScript objekti
2. Kontrola toka
Ternarni operator
If-else naredba
Switch naredba
Petlje
Izlazi iz blokova
For petlja
While petlja
Break
Continue
With naredba
Ternarni operator
Sintaksa:
logIzraz ? izraz1 : izraz2
gde je izraz log_izraz bilo koji izraz iji
rezultat je vrednost logikog tipa. Ako je
rezultat izraza true, onda se izvrava
izraz1, u suprotnom izraz2.
Primer:
kolicnik = (imenioc ==0 ? 0 : brojioc/
imenioc)
Kontrole toka - if
Sintaksa:
if (logIzraz) {naredbe1;}
[else {naredbe2;}]
Primer:
if (x == 8) {
else {
y=y*x;
}
y=x;
z=x;
Kontrola toka - if
Jo jedan primer:
if (mesec == 1)
ime_meseca = Januar;
else if (mesec == 2)
ime_meseca = Februar;
else if (mesec == 3)
ime_meseca = Mart;
else if (mesec == 4)
ime_meseca = Maj;
else
....
else if (mesec == 12)
ime_meseca = Decembar;
Petlje - while
Sintaksa:
[inicijalizacija;]
while(logIzraz){
naredbe;
}
Primer:
i=1;
while(i<=10){
document.write(i+
i=i+1;
}
"<br />");
Petlje - do-while
Sintaksa:
[inicijalizacija;]
do {
naredbe;
} while (logIzraz);
Primer:
i=1;
do {
document.write(i+ "<br />");
i=i+1;
} while(i<=10)
Petlje - for
Sintaksa:
for(inicijalizacija; logIzraz; iteracija){
naredbe;
}
Primer:
for(i=1; i<=10; i++){
document.write(i+ "<br />");
}
Petlje for-in
Sintaksa:
for (imePromenljive in imeSkupa) {
naredbe;
}
Primer:
for (x in mojaKola) {
document.write(mojaKola[x] +
"<br />"); }
Primer:
a: {
b:
{
c:
{
document.write(pre break-a );
break b;
}
document.write(ovo nee biti prikazano );
}
document.write(posle break-a );
}
Rezultat:
pre break-a posle break-a
Primer:
a: {
b:
{
c:
{
document.write(pre break-a );
break c;
}
documen write(ovo nee biti prikazano );
}
document.write(posle break-a );
}
Rezultat:
pre break-a ovo nee biti prikazano posle break-a
Rezultat:
01
23
45
67
89
Komanda with
Primer:
var a, x, y;
var r=10;
with (Math) {
a = PI * r * r;
x = r * cos(PI);
y = r * sin(PI/2);
}
x=r*Math.cos(Math.PI);
3. Objekti
Array - niz
RegExp uzorci za pretraivanje
String - znakovni niz
Date vreme
Event objekti koje generiu dogaaji
Math - Matematiki objekt
DOM HTML i JavaScript objekti
Mogu se nai na
http://www.w3schools.com/js/default.asp
http://www.w3.org/TR/DOM-Level-2-HTML/ht
ml.html
http://www.w3.org/TR/DOM-Level-2-HTML/ecm
a-script-binding.html
https://developer.mozilla.org/en/Gecko_DOM
_Reference
http://www.javascriptkit.com/domref/
Niz
Honda
Volvo
Jugo
Datum
Datum je objekat koji nosi informaciju o
datumu i vremenu
Konstruktor objekta datum je Date, te
se vreme instancira na sledee naine:
imeDatuma = new Date();
imeDatuma = new Date(datumString);
imeDatuma = new Date(godina, mesec,
dan)
imeDatuma = new Date(godina, mesec,
dan, sat, minut, sekund);
Datum
Primer:
document.write(Date());
Rezultat primera:
Sat Mar 21 2009 22:57:30 GMT+0100 (Central Europe
Standard Time)
Uzorak
Uzorak je niz znakova i specijalnih znakova
Konstruktor objekta uzorak je RegExp,
meutim on ne mora da se koristi:
imeUzorka = new RegExp(mustra,
atributi);
var imeUzorka = /mustra/atributi;
Gde je mustra niz znakova i specijalnih
znakova, a atributi su znakovi koji
specificiraju nain apliciranja mustre.
Specijalni znakovi se koriste da bi se
definisao izraz koji se trai u tekstu.
Deklaracija uzoraka
Predstavlja
Istu vrednost
\t
Tab znak
\n
Nova linija
\f
Nova strana
\r
Poetak linije
Navodnici
\uxxxx
Predstavlja pojavljivanje
Bilo kog karaktera od onih koji su navedeni izmeu [ i ].
Bilo kog karaktera koji nije naveden izmeu [ i ].
Bilo kog karaktera osim nove linije
\w
\W
\d
\D
\s
Blanko znak
\S
Primeri uzoraka
/[abc]/
predstavlja jedno pojavljivanje simbola a ili
jedno pojavljivanje simbola b ili jedno
pojavljivanje simbola c.
/[^abc]/
predstavlja karakter koji nije simbol a ili b ili c.
/\d\d\d\d\d/
Pomou ovog uzorka se definie broj koji se
sastoji od 5 cifara
Znaenje
{n,m}
{n,}
{n}
(...)
Primeri uzoraka
/\d{2,4}/
// uzorak koji oznaava 2, 3 ili 4 pojavljivanje cifara
/\w{3}\d?/ // uzorak koji oznaava tano tri pojavljivljavanja slova i
opciono jedne cifre, npr. string koji odgovara ovom uzorku je abc8 ili
qqq.
/\s+java\s+/ // uzorak koji oznaava string "java" sa jednim ili vie
prostora pre ili posle stringa
/[\"]/
// uzorak koji oznaava karakter navoda
/ab|cd|ef/ // uzorak koji oznaava pojavljivanje ab ili pojavljivanje cd ili
pojavljivanje ef
/\d{3}|[a-z]{4}/ // uzorak koji oznaava pojavljivanje tri cifre ili 4 mala
slova
/java(script)?/ // uzorak koji oznaava pojavljivanje stringa java ili
stringa javascript
/(ab|cd)+|ef)/ // uzorak koji oznaava pojavljivanje stringa ef ili
pojavljivanje jednom ili vie puta stringa ab ili pojavljivanje jednom ili
vie puta stringa cd
Atributi uzoraka
Atribut
Znaenje
Izvravanje case-insensitive
ispitivanja.
Osobine uzorka
ignoreCase
Osobina ignoreCase daje informaciju da li je
pretraga osetljiva na veliinu slova ili ne.
Sintaksa:
var imeUzorka = uzorak;
imeUzorka.ignoreCase;
Primer:
var uzorak1 = /S/i;
if(uzorak1.ignoreCase)
{document.write("ignoreCase atribut je on");}
Rezultat primera:
ignoreCase atribut je on
Primer - exec
Primer:
var mojUzorak = /d(b+)(d)/ig;
var rezultat =
mojUzorak.exec("cdbBdbsbz");
document.write(rezultat);
Rezultat primera:
dbBd,bB,d
Primer exec - IE
<html><body>
<script type=text/javascript>
var uzorak=/Java/g;
var text = JavaScript je mnogo zabavniji nego Java!;
while ((rez=uzorak.exec(text))){ document.write(Pronaen
+ rez[0] + na poziciji + rez.index +; Sledea
pretraga poinje od + uzorak.lastIndex + .<br />);}
</script></body></html>
Rezultat
Pronaen Java na poziciji 0; Sledea pretraga poinje
od 4.
Pronaen Java na poziciji 35; Sledea pretraga poinje
od 39.
String
String je objekat koji sadri niz
znakova
Konstruktor objekta string je String,
meutim on ne mora da se koristi:
imeStringa = new String(string);
var imeStringa = string;
Gde je string niz znakova pod
navodnicima;
Za kreiranje linkova:
link, anchor
Math
Math je objekat ije su osobine matematike
konstante, a metode su matematike funkcije
Matematike konstante:
var imePromenljive = Math.osobina;
Matematike funkcije:
var imePromenljive =
Math.metoda(imePromenljive1,imePromenljive2,
);
Promenljive u okviru Math objekta su brojevi, a
argumenti metoda mogu biti i konstante.
Objekat Event
Objekat Event se generie
automatski kada god se desi neki
od dogaaja
Svaki objekt generisan usled
nekog dogaaja ima svoje osobine
Dogaaji
Kod
onBlur
onClick
onChange
onFocus
onLoad
onMouseOver
onMouseOut
onSelect
onSubmit
onUnload
napusti stranicu
onReset
onError
onAbort
DOM objekti
DOM objekti su
http://www.w3.org/TR/DOM-Level-2-HTML/html.html
http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-bin
ding.html
https://developer.mozilla.org/en/Gecko_DOM_Reference
http://www.javascriptkit.com/domref/index.shtml
href=www.etf.rs
id=link
open, close
alert, confirm, prompt popup prozorii
resizeBy, resizeTo promena veliine
moveBy, moveTo pomeranje prozora
scrollBy, scrollTo - skrolovanje
focus fokusiranje prozora
Metodi su
Sintaksa
alert(imeStringa)
confirm(imeStringa)
prompt(imeStringa1,imeStringa2)
height
width
availHeight visina bez tulbarova
availWidth irina bez tulbarova
pixelDepth broj bita boje po pixelu
bufferDepth broj bita boje u baferu
updateInterval interval osveavanja ekrana
Slanje formulara
<html>
<head><script>
function formularSubmit(y){
document.getElementById(y).submit();}
</script></head>
<body>
<p>Enter some text in the fields below, then press the "Submit form" button
to submit the form.</p>
<form id="frm1" action="formularAkcija.php">
First name: <input type="text" name="fname"><br />
Last name: <input type="text" name="lname"><br /><br />
<input type=submit" onclick="formularSubmit(frm1)"
value="Submit form">
</form>
</body>
</html>
Kolai - cookie
Cookie su tekstualni fajlovi koje
brauzer alje klijentu kao njegov ID
Format koji cookie fajl mora da
zadovolji je:
ime=vrednost[;expires=datum]
[;domain=imeDomena]
[;path=putanja] [;secure][;httpOnly]
Kolai - cookie
Osobina lastModified
objekta document