Js Query
Js Query
Js Query
Kada se JavaScript pojavio 1995. godine, njegova glavna svrha je bila da izvri odreenu validaciju
ulaznih elemenata, koje su sve do tada bile preputene serverskoj strani. Netscape je video priliku da to
promeni uvoenjem JavaScripta.
Od tada, JavaScript se razvio u jednu vanu karakteristiku svakog veeg veb pretraivaa na tritu.
Iako je u poetku JavaScript podravao iskljuivo rad sa validacijom elemenata, njegove karakteristike
su se znatno poboljale u kasnijim verzijama. JavaScript je postao veoma vaan deo veba da ga ak i
alternativni pretraivai, ukljuujui i one na mobilnim telefonima podravaju. Brz napredak JavaScripta
niko nije mogao da predvidi. Od jednostavnog validatora ulaznih parmetara, pa do itavog programskog
jezika.
Opis, uvod u okruenje i priprema za rad (4)
JavaScript, kao i veina modernih programskih jezika, za osnovu ima programski jezik C. Iako se ivot
JavaScripta odvija na samo korak od samog HTML-a, njihovi naini funkcionisanja su potpuno drugaiji.
JavaScript se esto koristi kao sinonim za ECMAScript ali JavaScript je mnogo vie od onoga to je
definisano ECMAScript-om. Kompletna JavaScript implementacija se sastoji od tri odvojena dela: Jezgro
(ECMAScript), Document Object Model (DOM) i Browser Object Model (BOM).
ECMAScript je jezik definisan ECMA 262 standardom. ECMA 262 utvruje sintaksu, tipove, naredbe,
kljune rei, operatore, i objekte koje e ECMAScript jezik koristiti. JavaScript predstavlja
implementaciju ECMAScript jezika.
Opis, uvod u okruenje i priprema za rad (5)
HTML nije programski jezik, ve samo sistem obeleavanja razliitih
elemenata dokumenta na razliite naine putem tagova. Na primer,
ukoliko imamo element: <div>Moj sadrzaj</div>, to nije nita drugo do
obavetenje nekom itau da na strani postoji odreeni element iji je
sadraj Moj sadrzaj. Jednostavan sistem tagova koji ini da HTML ne
omoguava bilo kakve uslovne radnje tokom iscrtavanja tog sadraja. Na
primer, ako bismo eleli da, uz pomo samo HTML-a, kaemo pretraivau
da pod nekim uslovom prikae jedan, a pod drugim - drugi sadraj, ne
bismo uspeli.
poetak programa
uzmi poetno vreme
uradi operaciju jedan
uradi operaciju dva
...
uzmi trenutno vreme
oduzmi trenutno vreme od poetnog vremena
emituj rezultat (vremensku razliku) korisniku
JavaScript naredbe mogu da budu proste ili sloene, kao i u drugim programskim
jezicima.
Sintaksa jezika JavaScript (2)
esto pravilo programske sintakse je da svaka linija koda mora biti zavrena oznakom ";". Ovo pravilo
samo delimino vai i za JavaScript.
var x=1;
Svaku promenljivu u JavaScript jeziku definiemo pomou kljune rei var. Naziv promenljive je
potrebno da se definie samo prilikom deklaracije promenljive. Svaki sledei put kada nam je potrebna
definisana promenljiva, pozivamo je iskljuivo tako to navodimo sam naziv promenljive, bez bilo kakve
kljune rei ispred:
// vrsimo deklaraciju promenljive pomou kljucne reci var
var x=1;
// pozivamo definisanu promenljivu u funkciji write(). Pozivanje vrsimo samo
navodjenjem naziva proemnljive, bez kljune rei var.
document.write(x);
Kod koji piete u JavaScript-u, vidljiv je na web strani i zato je dobro ostaviti to pedantniji trag svog
rada, tako da se zavravanje linija takom i zarezom preporuuje.
Linije
Postoje trenuci kada elimo da svoj kod napiemo u jednoj liniji. Tada se linije koda,
koje se praktino nalaze u jednoj liniji, moraju odvajati znakom taka i zarez.
if(x==2);
document.write(x);
Ova naredba e se izvriti, ali nam njeno definisanje nita ne uslovljava. Odnosno,
ne sadri blok naredbi koje e se izvriti ako je uslov zadovoljen, odnosno ako uslov
nije zadovoljen.
Blokovi
Kada na strani postoji JavaScript kod, pretraiva prolazi kroz njega i startuje jednu po jednu njegovu
liniju.
Npr. Ako bismo imali sledei kod:
var a=1;
var b=2;
var c=a+b;
document.write(c);
Da bi i raunar mogao da neki kod registruje kao poseban blok, potrebno je oiviiti ga vitiastim
zagradama
{
ovo je jedan blok
}
Blok koda iz prethodnog primera, osim prezentacione, nema nikakvu drugu funkciju, jer e kod, unutar
bloka, biti uvek izvren.
Da bi blok imao bilo kakvu sutinu unutar programa, potrebno je da izvravanje njegove sadrine bude
uslovno.
uslov
{
ovo je jedan blok
}
Case sensitivity
JavaScript je takoe i Case sensitive programski jezik, to znai da e drugaije tretirati
elemente ispisane malim i velikim slovom:
var A=10;
// nije isto to i
var a=10;
Takoe morate voditi rauna prilikom pozivanja nekih kljuinih rei. Na primer if uslov nije
isto to i IF. Ukoliko pogreno navedete naziv kljune rei, naredba se nee izvriti onako
kako vi elite i doi e do greke.. Prilikom definisanja promenljivih imate slobodu
kombinovanja velikih i malih slova onako kako vi elite. Samo je bitno da prilikom
pozivanja definisane promenljive navedete njen identian naziv. Na primer:
var HoLa="Hola";
document.write(HoLa);
Core JavaScript
<script> </script>
Implementacija u izlazno okruenje (2)
Na primer:
<head>
<script type="text/javascript" >
document.write("head deo");
</script>
</head>
<body>
<h1>neki naslov</h1>
<script type="text/javascript" >
document.write("body deo 1");
</script>
<p>neki tekst</p>
<script type="text/javascript" >
document.write("body deo 2");
</script>
<p>nastavak teksta</p>
</body>
Eksterni JavaScript dokumenti
Na primer, ukoliko imamo skriptu koja sadri neku optu funkciju, nije neophodno da ona
postoji na svakoj strani, ve moemo na poetku svake strane koja zahteva tu skriptu da
uitamo eksterni fajl koji je sadri.
<script type="text/javascript" src="skripta.js"> </script>
Kada se skripta na ovaj nain jednom uita, sve promenljive na strani postaju dostupne
eksternoj skripti i obratno - sve promenljive eksterne skripte dostupne su na strani. Zbog
toga, treba biti paljiv sa imenovanjem JavaScript elemenata kada se rukuje sa eksternim
skriptama.
Sami eksterni JavaScript fajlovi, po konvenciji, imenuju se sa ekstenzijom .js, ali ovo nije
neophodno da bi skripta stvarno i funkcionisala, ve je mogue imenovati eksterni fajl sa
bilo kojom ekstenzijom, sve dok je ime fajla pravilno upisano u src atribut inicijalizacije
skripte.
Sadraj eksternog .js fajla ne treba da ima inicijalizaciju (Tag-ove za poetak i kraj)
skripte, ve jednostavno - samu skriptu.
Eksterni JavaScript dokumenti (2)
esto moemo naii na atribut language u okviru script taga.
<script language="javascript" src="skripta.js"> </script>
Poslednjom verzijom, HTML 5, ovaj atribut je definisan kao opcioni jer se JavaScript
smatra podrazumevanom vrednou za atribut type.
Postoji mogunost (mada je ova mogunost sve rea) da pretraiva ne prepozna skriptu.
U tu svrhu, programeri su ranije esto koristili i Tag za komentarisanje unutar same
skripte. Ovim se, ukoliko pretraiva nije prepoznao skriptu, cela skripta pretvara u
komentar, dok bi u suprotnom, sadraj skripte bio emitovan na samoj strani (naravno,
bez izvravanja).
<script type="text/javascript"><!--
document.write("TEST");
//-->
</script>
JavaScript i pretraivai (2)
Ukoliko smo posegli za JavaScript-om da bismo dobili neki rezultat, verovatno
smo to uradili zato to taj rezultat nije ostvariv u samom HTML-u.
<script type="text/javascript">
document.write("JavaScript radi")
</script>
<noscript>JavaScript ne radi</noscript>
// - jednolinijski komentar
/* */ - vielinijski komentar
Primer: /*
komentar u vie redova
*/
Promenljive
JavaScript je case sensitive programski jezik.
a = 5;
b = 8;
b = broj + a;
Primer:
var x = 42; // x je Number
var x = "str"; // x je String
var x = true; // x je Boolean
Tipovi podataka - podela
JavaScript svojom poslednjom zvaninom verzijom poznaje 6
primitivnih i jedan sloen tip podatka.
Primitivni tipovi:
o String (jednostruki/dvostruki navodnici)
o Number (-2 1 do +2 -1 / -Infinity do +Infinity / NaN / Number.isSafeInteger(), 123e-5)
o Boolean (true/false)
o Null
o Undefined (promenljiva bez definisane vrednosti)
o Symbol (ECMAScript 6)
Sloeni tip:
o Object
Nizovi
Nizovi u JavaScript-u se mogu kreirati kao literali oivieni
uglastim zagradama.
Primer:
var niz = ["Petar", "Jovan", "Milan"];
Objekti
Objekti u JavaScript-u se mogu kreirati kao parovi kljueva i
vrednosti oivieni vitiastim zagradama.
Primer:
var korisnik = {ime:"Petar", prezime:"Petrovic", godine:50};
Operatori
Operatori predstavljaju specijalne karaktere koji definiu operaciju koju treba
izvriti nad operandima. Operandi mogu biti promenljive, izrazi i konstante.
Aritmetiki operatori
Logiki operatori
Operatori poreenja
Aritmetiki operatori (1)
alert('Hello World');
ili
window.alert('Hello World');
alert(confirm("Da li je dan?")?"Dobar
dan":"Dobro vece");
Prompt
prompt("Unesi vrednost")
setTimeout
Izvrava odreenu funkciju jednom u odreenom vremenskom roku
setTimeout("alert('pozdrav')",2000);
setInterval
Izvrava funkciju u odreenom vremenskom intervalu
setInterval("alert('pozdrav')",2000);