Mala škola Java Script-a sa primerima - uvod

JavaScript je skript jezik koji je razvila kompanija Netscape Communications radi povećanja interaktivnosti Web strana. Web browser-i koji podržavaju JavaScript interpretiraju kôd. JavaScript dodaje interaktivnost Web prezentaciji na strani klijenta. Pri kreiranju JavaScript kôda može se koristiti ma koji ASCII editor.

Polazni naziv JavaScript jezika bilo je LiveScript, ali u saradnji Netscape-a i Sun-a, ime je izmenjeno u JavaScript, zbog namene da Java i JavaScript budu jezici Internet-a i internet programiranja.


UKRATKO O JAVA SCRIPT-u i JAVA-i


Java je objektno orijentisani programski jezik, namenjen razvoju aplikacija za sisteme na računarskim mrežama.
Aplikacija napisana u Javi prenosiva je između različitih platformi, što Javu i čini specifičnom.
U Javu su ugrađeni brojni sigurnosni mehanizmi: memorija nije dostupna niti jednom Java programu; svi bajt kôdovi preneseni mrežom se proveravaju u cilju pronalaženja neželjenih izmena na putu od servera do klijenta; onemogućeno je da program-uljez kloniranjem klasa unese destruktivni kôd u program; itd.

Pojavom Jave došlo je do znatnog unapređenja komunikacije u Internet svetu.
Osim što su se otvorile mogućnosti interaktivne komunikacije, i web stranice poprimile su dinamičniji oblik...

Java Script je kompaktan i objektno zasnovan skriptni jezik namenjen za razvoj klijent Internet aplikacija.
Programski kôd upisuje se direktno na HTML stranicu. WEB BROWSER-I KOJI PODRŽAVAJU JavaScript interpretiraju kôd i obezvedjuju širok raspon interaktivnosti i efekata na Web stranama.
Java Script poseduje relativno mali broj tipova podataka: numeričke, boolean i string vrednosti. Takođe, podržava funkcije, ali bez posebnih zahteva za deklarisanjem.

Poređene Java Script-a i Java-e

Java Script Java
Ne kompajilira se, već samo interpretira kod klijenta. Kompajlira se na serveru pre izvršenja kod klijenta.
Objektno zasnovan. Koristi postojeće objekte, bez klasa ili nasleđa. Objektno orjentisan. Appleti sadrže objekte sastavljene od klasa sa nasleđem.
Kôd je integrisan u HTML. Applet je izdvojen iz HTML-a.
Tip promenljive se ne deklariše. Tip promenljive mora biti deklarisan.
Dinamička povezanost. Objektne reference proveravaju se u run-time. Statička povezanost. Objektne reference moraju postojati u vreme kompajliranja.
Zaštićen. Ne može zapisivati na hard disk. Zaštićen. Ne može zapisivati na hard disk.

 

Načini uključivanja JavaScript-a unutar HTML dokumenta

  1. u sekciji <BODY>... </BODY> unutar oznaka <SCRIPT language="JavaScript" type="text/javascript"> ... </SCRIPT>
  2. u sekciji <HEAD>... </HEAD> unutar oznaka <SCRIPT>...</SCRIPT>
  3. u sekciji <BODY>... </BODY> ili <FORM>... </FORM> unutar HTML elementa. Tada se ne moraju koristiti oznake <SCRIPT>...</SCRIPT>
  4. u posebnim datotekama sa ekstenzijom .js, a da bi se koristila zasebna datoteka, mora se u tekućem HTML dokumentu uključiti unutar oznaka, na primer primer.js:
    <SCRIPT language="JavaScript" type="text/javascript" src="primer.js"> </SCRIPT>
Načini izvršenja skripta unutar taga <SCRIPT>...</SCRIPT>
  • ako je skript uključen u zaglavlju, ignorisan je do poziva
  • ako je skript uključen u telu, rezultat se prikazuje na Web strani
  • ako je skript rukovalac događaja, skript će se izvršiti kad se desi događaj
UKRATKO O PROMENLJIVAMA, TIPOVIMA PODATAKA, KONVERZIJI I OPERATORIMA


NAZIVI PROMENLJIVIH

- prvi znak mora biti slovo engleske abecede ili podvlaka ("_")
-
mogu sadržati brojeve i slova engleske abecede
-
velika i mala slova se razlikuju, ali, uobičajeno je da se pišu malim slovima!
-
ključne reči (
for, if, else, class, byte, int...) ne mogu se koristiti u nazivu identifikatora

TIPOVI PODATAKA


SPECIJALNI KARAKTERI

U stringovima je dozvoljeno koristiti sledeće specijalne karaktere:


KONVERZIJA PODATAKA

JavaScript nije strogo tipiziran i ne zahteva posebno deklarisanje tipa podataka, te će se konverzija obaviti automatski.

Osnovni način za deklarisanje promenljivih:

var broj1 = 42
var tekst = "Zdravo, svete!"

ali i:

broj1 = 42
tekst = "Zdravo, svete!"

Generalno, u kombinaciji broja i stringa, Java Script konvertuje broj u string. Na primer:

x = "Upisali ste broj " + 54
y = 54 + " je odgovor na Vas unos."

Za konverziju stringa u broj, koriste se funkcije:

.
ARITMETIČKI OPERATORI

Operacija Objašnjenje
X + Y
X - Y
X * Y
X / Y
X % Y

X++
++X
X--
--X
- sabiranje
- oduzimanje
- množenje
- deljenje
- ostatak deljenja X sa Y (modul)

- postfiksno uvećanje za 1
- prefiksno uvećanje za 1
- postfiksno umanjenje za 1
- prefiksno umanjenje za 1


RELACIJSKI OPERATORI

Operacija Objašnjenje
X > Y
X < Y
X >= Y
X <= Y
X == Y
X != Y
- X veće od Y
- X manje od Y
- X veće ili jednako Y
- X manje ili jednako Y
- X jednako Y
- X nije jednako Y


OPERATORI USLOVA

Operacija Objašnjenje
X && Y
X || Y
!X
- konjukcija (logičko "I")
- disjunkcija (logičko "ILI")
- negacija (logičko "NE")


OPERATORI PRIDRUŽIVANJA

Operacija ObjaŠnjenje
X = Y
X += Y
X -= Y
X *= Y
X /= Y
X %= Y
- promenljivoj X pridružuje se vrednost Y
X = X + Y
X = X - Y
X = X * Y
X = X / Y
X = X % Y (ostatak pri celobrojnom deljenju)


USLOVNI IZRAZI

Uslovnim izrazom možemo prihvatiti jednu od dve vrednosti navedene u uslovu. Evo sintakse i primera:

(uslov) ? izraz1 : izraz2
status = (godina >= 7) ? "placaju" : "besplatno"

Ako je uslov istinit (true), izraz ima vrednost izraz1, u suprotnom ima vrednost izraz2.


UKRATKO O KONTROLI TOKA I ISKAZIMA

IF...ELSE struktura:

if (izraz1){
    ...iskazi...
}
else if (
izraz2) {
    ...iskazi...
}
else {
    ...iskazi...
}


Primer s IF... strukturom:

<SCRIPT LANGUAGE="JavaScript">
  /* oznaka početka Java Scripta */
<!--
/* sve unutar ovog taga je nedostupno browserima koji ne podržavaju Java Script */

var datum = new Date();   /* promenljivoj datum pridružuje tekući datum */
var sat = datum.getHours();  
/* u promenljivu sat prihvata tekući čas */

if (sat > 5 && sat < 13){
  /* logička provera */
    document.write('<BODY BGCOLOR="blue">Dobro jutro!')
/* BODY i ispis poruke */
}
if (sat > 12 && sat < 19){
  
/* ako je čas veći od 12 i manji od 19 */
    document.write('<BODY BGCOLOR="green">Dobar dan!')
}
if (sat > 18 || sat < 6){
   /* ako je čas veći od 18 ili manji od 6 */
    document.write('<BODY BGCOLOR="silver">Dobro veče!')
}

-->
</SCRIPT>
/* oznaka kraja Java Scripta */

Navedeni primer postavlja odgovarajuću pozadinu i ispisuje poruku u HTML dokumentu u zavisnosti od tekućeg sata.
Unutar zagrada naredbe
document.write(...) može se postaviti bilo koji HTML tag, tekst ili sve to kombinovati s vrednostima svojih promenljivih ili već postojećih funkcija u JavaScriptu...

FOR... ciklus:

<SCRIPT LANGUAGE="JavaScript">
<!--
    for (var i = 1; i <= 10; i++){
   /* i=1; ciklus traje sve dok je i<=10; i=i+1 */
        document.write('Vrednost i = ' + i);
/* u HTML ispisuje: Vrednost i = ... */
    }
-->
</SCRIPT>

Navedeni primer će u HTML dokumentu, na poziciji gde je postavljen, ispisati:
   Vrednost i = 1    Vrednost i = 2    ...    Vrednost i = 10

FOR...IN ciklus:

for (promenljiva in objekt) {
	... iskazi...
}

WHILE... petlja:

while (izraz){
    ...iskazi...;
}

DO...WHILE... petlja:

do {
    ...iskazi...;
} while (izraz);

WITH... iskaz:

with (objekt) {
	...iskazi...
}
Na primer, matematičkim funkcijama mora prethoditi objekat Math.
Sledeći primer podrazumeva Math ispred PI, COS() i SIN():
	with (Math) {
		a = PI / 2;
		x = cos(a);
		y = sin(a);
	} 

BREAK iskaz:
prekida tekuću while ili for strukturu i nastavlja iza nje.

i = 0;
n = 0;
while (i < 5) { 
	i++ 
	if (i == 3) {
		continue 
	}
	else {
		n += i 
	}
} 

FUNCTION i RETURN iskaz:
primer funkcije koja izračunava kvadrat broja:

function kvadratBroja( x ) {
	return x * x 
} 
---
x = kvadratBroja(5)   /* poziv funkcije */
document.write("Kvadrat od 5 je " + x)
---
Kvadrat od 5 je 25

NEW  iskaz:
definiše novi objekt na bazi postojećeg.
Donji primer promenljivih datum pridružuje tekući datum:

var datum = new Date();

THIS iskaz:
referenca na tekući objekt.
Donji primer definiše da se klikom na objekt poziva funkcija slucajniBroj() a kao parametar prenosi se naziv tekuće forme (this.form):

onClick="slucajniBroj(this.form)"

VAR iskaz:
definisanje promenljivih (opcionalno).

var broj1 = 0, tekst1="proba"

 

OBJEKTI, METODE, SVOJSTVA I DOGAŠAJI

Svaka web stranica poseduje objekte:

Primer svojstava:

Browser može kreirati objekte bazirane na sadržaju stranice, npr.:

Oni mogu imati svojstva kao što su:

Mnogi objekti imaju metode koje emuliraju dogašaje.
Npr,
button objekt ima click metodu koja emulira klik miša na tasteru...

Event (dogašaj)

Nastaje kada korisnik...

Event Handler

blur

izaše iz fokusa elementa forme

onBlur

click

klikne na elementu forme ili link

onClick

change

podesi/promeni vrednost "text", "textarea" ili izabranog elementa

onChange

focus

uše u fokus nekog elementa forme

onFocus

load

učita stranicu u browser

onLoad

mouseover

pomera pokazivač miša preko linka ili "anchora"

onMouseOver

select

izabere "input" polje elementa forme

onSelect

submit

izvrši "submit" (slanje) forme

onSubmit

unload

"napusti" stranicu

onUnload

 

 

KOMENTARI U JAVA SCRIPTU

Za komentar do kraja reda ili onaj na kraju nekog iskaza (npr, iza ;) koristi se oznaka //...
Za komentar kroz više redova ili umetnut unutar neke strukture (npr, unutar
{ } zagrada) koristi se /*.....*/