Professional Documents
Culture Documents
Introducere in HTML
Realizarea unui pagini web presupune cunoaterea limbajului HTML (HyperText
Markup Language). Acesta e un limbaj de marcare, introdus de Tim Berners-Lee. Fiind un
limbaj de marcare, HTML nu utilizeaz instruciuni sau comenzi, ci etichete, acestea fiind
numite i balize, elemente sau tag-uri.
Origini
Unul din primele elemente, fundamentale de altfel, ale WWW (World Wide Web) este
HTML, standard ce descrie formatul primar n care documentele sunt distribuite i vzute pe
Web. Multe din trsturile lui, cum ar fi independena fa de platform, structurarea
formatrii i legturile hipertext, fac din el un foarte bun format pentru documentele Internet
i Web. Primele specificaii de baz ale Web-ului au fost HTML, HTTP i URL.
Menire i semnificaii
HTML a fost dezvoltat iniial de Tim Berners-Lee la CERN n 1989. HTML este un
limbaj bazat pe SGML (Standard Generalized Markup Language), o aa-numit aplicaie a
acestuia. SGML este un standard internaional (ISO-8879) aprobat n 1986. HTML a fost
iniial vzut ca o posibilitate pentru fizicienii care utilizeaz computere diferite s schimbe
ntre ei informaie prin mijlocirea Internetului. Erau prin urmare necesare cteva condiii
eseniale: independena de platform, posibiliti hipertext i structurarea documentelor.
Independena de platform semnific faptul c un document poate fi afiat n mod asemntor
(sau aproape identic) de computere diferite (deci cu font, grafic i culori aidoma), lucru vital
pentru o audien numeroas i extrem de variat. Hipertext se traduce prin faptul c orice
cuvnt, fraz, imagine sau element al documentului vzut de un utilizator (client) poate face
referin la un alt document sau chiar la paragrafe din interiorul aceluiai document, ceea ce
uureaz mult navigarea ntre prile componente ale unui document sau ntre multiple
documente. Structurarea riguroas a documentelor permite convertirea acestora dintr-un
format n altul precum i interogarea unor baze de date nglobnd aceste documente.
nceputurile
Nscut n urm cu aproximativ 30 de ani, ntr-o tentativ de a rezolva unele probleme
ivite la transportul documentelor ntre diferite computere, limbajul hipertext a evoluat ncet.
n primii ani de evoluie HTML a demarat lent n principal pentru c i lipseau posibilitile de
a reda publicaii electronice profesionale; limbajul permitea oarece control asupra fonturilor
dar nu permitea inserarea graficii. n 1993, NCSA a mbogit limbajul pentru a permite
inserarea graficii i a construit primul navigator grafic: Mosaic. Au urmat apoi contribuii ad1
hoc ale diverselor firme care au adus tot felul de adugiri limbajului HTML astfel nct, n
1994, limbajul prea scpat de sub control. Urmarea a fost c la prima conferin WWW de la
Geneva (Elveia) s-a constituit un grup de specialiti (HTML Working Group) a crui prim
misiune a fost formalizarea HTML, lucru care s-a concretizat n HTML 2.0. Importana
aciunii acestui grup const n faptul c, odat standardizat, limbajul a putut fi apoi extins ntrun mod mai controlat la alte nivele.
Standardizarea
Standardul oficial HTML este dat de World Wide Web Consortium (W3C), care este
afiliat la Internet Engineering Task Force (IETF). W3C a enunat cteva versiuni ale
specificaiei HTML, printre care i HTML 2.0, HTML 3.0, HTML 3.2, HTML 4.0, HTML
4.01 i, cel mai recent, HTML 5. n acelai timp, autorii de browsere cum ar fi Netscape i
Microsoft, au dezvoltat adesea propriile "extensii" HTML n afara procesului standard i le-au
ncorporat n browserele lor. n unele cazuri (cum ar fi tagul Netscape), aceste extensii au
devenit standarde de facto adoptate de autorii de browsere. Cnd navigatorul ncarc un
document HTML, el "citete" documentul n cutarea tag-urilor HTML, formateaz textul i
imaginea i le afieaz pe ecran. Este motivul pentru care acelai document HTML apare uor
diferit cnd este privit utiliznd navigatoare diferite.
Stadiile prin care trece un standard elaborat de W3C sunt:
-
de aici este preluat de ctre un grup particular de lucru (Working Group) i este
discutat pn cnd se ajunge la un consens;
da,
dac toi paii anteriori au fost ndeplinii, specificaia trebuie aprobat n final
de Director i se public sub forma unui standard (W3C Recommendation).
n continuare, este prezentat cte ceva despre structura i sintaxa unui document
HTML.
Pentru orice document web trebuie s i se atribuie un tip. Acest tip este specificat n
prima linie a documentului. Este important pentru a se putea deosebi documentul de tip
HTML de cel de tip XHTML sau alte tipuri existente. Pentru documentele de tip HTML
exist 3 tipuri i anume strict, transitional i frameset. n mare, documentele de tipul "strict"
exclud din prezentarea lor atributele i elementele cu suport pentru formatarea paginii (CSS),
cele de tip "transitional" includ i aceste atribute, iar cele de tip "frameset" sunt n general
construite din mai multe buci (frame).
Urmtoarea linie conine un tag care anun browserul c ncepe un document n
format HTML.
Linia urmtoare specific partea de sus a documentului, antetul (header). n aceast
parte sunt incluse diferite informaii cum ar fi titlul paginii sau diferite taguri care spun
bowserului anumite informaii despre pagina curent. Aceste taguri sunt cunoscute sub
numele de meta-taguri i au o importan mai mare dect tagurile normale. n cazul
exemplului de mai sus este specificat un meta-tag care spune browserului ce tip de caractere
sunt folosite n pagina curent (este util n cazul n care scriei pagini n mai multe limbi,
browserele i motoarele de cutare vor ti s afieze caracterele din acele pagini).
Urmtoarea linie din cadrul antetului este linia care conine titlul paginii curente. Este
de preferat ca fiecare pagin de web s aib un titlu ct mai sugestiv (util n cadrul motoarelor
de cutare, dar i dac vrei sa tiprii pagina la imprimant)
Tagul urmtor este un tag de nchidere, i anume se specific browserului c acolo se
termina partea de antet a documentului.
Dup antet, urmeaz coninutul efectiv al documentului, care este specificat prin tagul
de deschidere <body>. ntre acest tag i pn cnd browserul ntlnete tagul de nchidere
</body> se poate pune coninutul efectiv al paginii, i anume text, taguri de formatare a
textului, elemente de aranjare n pagin precum i hipertext
Ultima linie din document trebuie s fie ntotdeauna tagul de nchidere al
documentului HTML i anume tagul </html>
Un document HTML se poate scrie n orice tip de editor de texte care tie s salveze
textul neformatat (gen Notepad, dar nu i Word care preformateaz textul). Documentele
HTML de obicei au extensia .htm sau .html, dar pot fi i alte extensii cum ar fi .dhtml sau
.xml sau .php. Dup crearea unei pagini, pentru a verifica dac este compatibil cu standardul,
se poate verifica la adresa http://validator.w3.org/ unde gsii un validator automat care
verific structura i corectitudinea sintaxei paginii.
2. Introducere n CSS
CSS este un acronim provenind din Cascading Style Sheets, care nseamn "foi de stil
n cascad". n documentele W3C, CSS nu e definit ca un nou limbaj, ci ca un mecanism care
permite formatarea documentului HTML. CSS-ul nu exclude HTML-ul din pagina web. Nu
se poate realiza o pagin web folosind numai CSS, care a fost proiectat astfel nct s
conlucreze cu HTML-ul. Tagurile HTML au fost iniial destinate pentru a defini coninutul
unui document. Modul de aranjare al documentului era sarcina browser-ului, fr a fi folosite
taguri de structur.
Pe masur ce Netscape i IE continuau s adauge noi taguri HTML i atribute (ca tagul
<font> i atributul color) sintaxei HTML originale, devenea din ce n ce mai greu s creezi
site-uri web n care coninutul documentelor HTML s fie separat clar de aranjamentul
documentului. Stilurile definesc cum s fie afiate elementele HTML 4.0, aa cum face tagul
font sau atributul color n HTML 3.2. Stilurile sunt salvate n mod normal n fiiere diferite de
cele cu extensia html. Foile de stil externe v permit s schimbai apariia i aranjarea tuturor
paginilor n site-ul dumneavoastr web, doar prin editarea unui singur document CSS. Dac
ai ncercat vreodat s schimbai fontul sau culoarea tuturor anteturilor din paginile web pe
care le-ai creat, vei ntelege cum CSS v poate scuti de mult munc inutil. Proiectanii
CSS-ului au urmrit ndeosebi separarea ntre coninutul paginii (textul destinat vizitatorului
i imaginile din pagin) i codul-surs. Folosind CSS, se ajunge la un control mai fin asupra
paginii web, la scderea dimensiunii n octei a paginii web, atunci cnd codul CSS e coninut
ntr-un fiier extern. Modificnd fiierul CSS extern, modificm simultan toate paginile web
n care acesta e inclus. Se pot crea efecte mai sofisticate dect cele produse de codul HTML:
suprapunerea unei imagini peste alt imagine, a unui text peste alt text, impresia de relief,
efectul hover, afiarea unor fonturi mai mari dect h1 .a.m.d.
CSS este foarte util n Web design, deoarece le permite developerilor s controleze
stilul i chenarul mai multor pagini web n acelai timp. Ca web developer putei defini un stil
pentru fiecare element HTML i s-l aplicai ctor pagini web dorii. Pentru a face o
4
schimbare global, schimbai stilul i toate elementele din paginile web vor fi modificate
automat.
Dezavantajul lucrri cu CSS este c pagina coninnd cod CSS poate arta diferit n
navigatoare diferite, deoarece nu toate browserele interpreteaz codul CSS la fel.
Foile de stil dau posibilitatea specificrii informaiei despre stil n mai multe feluri.
Stilurile se pot specifica ntr-un singur element HTML, n interiorul elementului <head> al
unei pagini HTML sau ntr-un fiier extern CSS. Dintr-un singur document HTML se pot face
referiri ctre mai multe foi de stil externe. Deci, un stil din interiorul unui element HTML are
cea mai mare prioritate, ceea ce nseamn c va suprascrie fiecare stil declarat n tagul
<head>, ntr-o foaie de stil extern i n browser.
Fiierul extern poate fi scris n Notepad i salvat cu extensia css. Includerea sa n
pagina web se face folosind tag-ul <link>, care trebuie s se afle ntre <head> i </head> (n
antetul paginii).
Observaie: ntr-un fiier html, pot fi incluse astfel oricte alte fiiere cu extensia css,
htm, html sau pdf. Aceast metod de includere a CSS-ului n pagina web e mai avantajoas
ca primele dou. Codul CSS introdus astfel conlucreaz cu cel scris direct n pagin.
Sintaxa CSS este alctuit din trei pri: un selector, o caracteristic i o valoare.
Selectorul este elementul/tagul pe care vrei s-l definii, caracteristica este atributul pe care
dorii s-l schimbai i fiecare caracteristic poate lua o valoare. Caracteristica i valoarea sunt
separate de semnul : i sunt ncadrate de acolade:
Cod:
body {color: black}
Dac dorii s specificai mai mult de o caracteristic, trebuie s separai fiecare
caracteristic cu semnul ;. Exemplul de mai jos arat cum s definii un paragraf aliniat
central, cu culoarea roie a textului:
Cod:
p {text-align: center; color: red}
3. specte fundmentle le limbjului JavaScript
) JavaScript pote fi ncorport n HTML
De obicei, codul JavaScript este gzduit n documente HTML i executt din interiorul
lor. Cele mi multe obiecte JavaScript u etichete HTML pe cre le reprezint, stfel nct
progrmul este inclus l nivelul esenil, pe prte de client, l limbjului. Pentru fi un
progrmtor JavaScript eficient, trebuie s cunotem i crcteristicile HTML.
JavaScript folosete HTML c modlitte de sri n cdrul de lucru l pliciilor pentru
Web i-i extinde cpcitile normle, sigurnd evenimente pentru etichetele HTML i
permind cestui cod condus de evenimente s se execute din interiorul su.
5
Editor JavaScript
Adaug codul JavaScript
Browser Web
ncarc pagina HTML
Un
din crcteristicile-cheie le limbjului JavaScript
este
cpcitte s de intercept un numr limitt de
ciuni le utiliztorului, cunoscute mjoritii progrmtorilor c evenimente. Unele elemente
HTML recionez dej l evenimente cum r fi executre unui clic pe elementul fmilir de
legtur cre duce l lt document HTML.
Cnd trecem cursorul mouse-ului peste textul su imgine cre constituie legtur, cursorul
se modific dintr-o sget ntr-o mn micu. Unele browsere recionez i prin fire n
br de stre dresei URL de destinie. JavaScript l numete eveniment MouseOver i
recionez ori de cte ori trecem cursorul mouse-ului peste element. Dc executm clic pe
oricre prte legturii, browserul rspunde trimindu-ne l o locie diferit de pe Web su
deschiznd un nou fiier. ciune este denumit eveniment Click i este declnt ori de cte
ori se execut clic pe legtur. HTML interceptez ceste evenimente i browserul recionez
ntotdeun n celi mod.
2. Tokenuri
Tokenurile sunt cele mi mici cuvinte, expresii su crctere individule pe cre le pote
nelege JavaScript. Cnd JavaScript este interprett, browserul nlizez scriptul, identificnd
tokenurile i ignornd comentriile i spiile lbe.
Tokenurile JavaScript se clsific n ptru ctegorii: identifictori, cuvinte-cheie, elemente
literle i opertori. Sintx unui limbj este setul de reguli i restricii privind modlitte n
cre se pot combin tokenurile.
) Identifictori
Identifictorii sunt pur i simplu nume cre reprezint vribile, metode su obiecte. Ei
constu dintr-o combinie de crctere literle i cifre. Unele nume sunt dej ncorporte n
limbjul JavaScript i, c urmre, sunt rezervte.
Pe lng ceste cuvinte-cheie putem definii proprii notrii identifictori semnifictivi.
Desigur, trebuie respectte ctev reguli:
toi identifictorii trebuie s ncep cu o liter su cu o liniu de subliniere ( _ );
putem folosi litere, cifre su liniue de subliniere pentru tote crceterele cre
urmez;
literele sunt tote crcterele mjuscule de l "" l "Z" i tote crcterele minuscule
de l "" l "z";
irul de crctere cre lctuiete un identifictor nu trebuie s includ spii;
2
cifrele sunt de l 0 l 9.
Domeniul de vlbilitte este formt din zon su zonele dintr-un progrm cre pot referi o
vribil.
) Vribile locle
O vribil delcrt n interiorul unei funcii re domeniu de vlbilitte locl. Numi
funci respectiv re cces l vlore coninut n vribil. Vribil este cret de fiecre
dt cnd funci este pelt. Similr, vribil este distrus de fiecre dt cnd funci se
ncheie. O lt funcie cre declr o vribil cu celi nume este considert de JavaScript c
fiind o vribil diferit. Fiecre dintre ele se dresez propriului su bloc de memorie.
b) Vribile globle
Dc se dorete c mi multe funcii s prtjeze o vribil, cest trebuie declrt n
fr oricror funcii, dr, desigur, ntre etichete <script>. este recomndbil c vribilele
globle s fie declrte n seciune <hed> pginii HTML, pentru v sigur c ele sunt
ncrcte ninte de orice lt prte pliciei.
4. Constnte
O constnt este o vribil cre pstrez ceei vlore pe tot durt executrii unui
progrm. JavaScript folosete constnte ncorporte pentru reprezent vlori folosite de
operiile mtemtice uzule, cum este pi. Ele pot fi cceste prin intermediul obiectului
mth.
Constntele definite de utiliztor sunt vribile pe cre le definete progrmtorul i le cror
vlori nu se pot modifc. De obicei, constntele sunt reprezentte prin cuvinte cre ncep cu
liter mre i sunt definite l nceputul progrmului.
Javascript nu recunote constntele n modul trdiionl. De obicei, un limbj de progrmre
cre recunote constnte definite de utiliztor se sigur c nici o lt prte pliciei nu pote
modific vlore unei constnte dup ce cest fost definit. Tenttiv de modificre
determin o erore. JavaScript nu v efectu ns cest verificre. Chir dc nu exist nici o
modlitte prin cre s determinm JavaScript s se sigure c o vribil nu este modifict,
putem s folosim vribile cre s ib vlori ce sunt folosite n mod repett ntr-un script.
nlocuind instnele multiple le unei vlori obinuite cu o vribil, se v uur ctulizre
ulterior scriptului. Tot ce v fi de fcut este s modificm iniilizre vribilei i ntregul
script este ctulizt.
5. Comentrii
Cele dou soluii de cre dispunem pentru pls comentrii n codul JavaScript sunt
metodele folosite i n limbjele C/C++. Pentru comentrii cre u dor o linie de text se folosesc
2 crctere slsh consecutive //. Pentru blocuri de comentrii mi mri se folosesc crcterele /*
i */.
6. Funcii
Funci este un script cre pote fi pelt oricnd folosindu-i numele. stfel cpcitile
limbjului JavaScript sporesc n dou modliti. n primul rnd reprezint o modlitte
excelent de stbili rulre unui script l un moment ulterior. lt vntj l reprezint
cpcitte de refolosire scripturilor fr scrie n mod repett celi linii de cod. Se
recomnd declrre funciilor n blocul <hed> l documentului HTML, stfel funci v fi
ncrct ncinte de fi executt de corpul documentului.
Opertori
Opertorii sunt simbolurile i identifictorii cre reprezint fie felul n cre sunt modificte
dtele, fie felul n cre este evlut o combinie de expresii. JavaScript recunote tt
opertorii unri, ct i opertorii binri. Opertorii binri necesit prezen doi opernzi n
expresie, n vreme ce opertorii unri u nevoie de un singur opernd.
5
1.
Opertori de tribuire
Opertori ritmetici
Opertorii principli i grupului sunt semnul plus (+) cre dun dou vlori, semnul () cre
scde o vlore din lt vlore, steriscul (*) cre nmulete dou vlori i semnul slh (/) cre
mprte o vlore l lt vlore.
O operie obinuit este incrementre vlorii unei vribile. Incrementre se folosete tt
de frecvent n progrmele pe clcultor nct unele limbje ncorporez opertori specili pentru
incrementre i decrementre vlorilor vribilelelor. Un semene limbj este JavaScript,
cre folosete ++ pentru incrementre i pentru decrementre unei vlori cu 1. ceti
opertori pot fi folosii tt c prefixe ct i c sufixe, putnd stfel modific ordine n cre o
vlore este ntors de expresie i momentul cnd este tribuit nou vlore.
Opertorul modulo este simbolizt prin semnul procent (%) i este restul rms dup
mprire primului opernd l l doile.
3. Opertori de comprie
Opertorii de comprie sunt folosii exct pentru ce rt numele lor - pentru comprie.
Expresiile ce folosesc opertorii de comprie pun de fpt o ntrebre despre dou vlori.
Rspunsul pote s fie su true, su flse.
Dou semne egl (==) simbolizez opertorul de eglitte., folosit pentru verific dc
vlorile celor doi opernzi sunt egle. Trebuie o forte mre tenie l folosire opertorului
corect. Opertorul de eglitte (==) testez dou vlori pentru vede dc sunt egle, n timp
ce opertorul de tribuire (=) stbilete o nou vlore pentru o vribil. Dc se greete i se
folosete opertorul eront, interpretorul JavaScript nun cest lucru.
Opertori de comprie:
Opertor
Descriere
==
Opertor de eglitte. ntorce vlore true dc cei doi opernzi sunt
egli.
!=
Opertor de ne-eglitte- ntorce vlore true dc opernzii si nu
sunt egli.
>
>=
<
<=
4.
Primul opertor de pelre este simbolizt printr-o pereche de prnteze rotunde i urmez
ntotdeun dup numele funciei. De exemplu, o funcie v fi declrt folosind urmtore
sintx:
function numefct()
{
instruciuni;
}
Opertorul de pelre este folosit i cnd este pelt funci de ltundev dintr-un script.
tunci v rt stfel:
numefct()
Prntezele rt c, n locul oricrui lt identifictor definit de utiliztor, este folosit o
funcie.
l doile opertor pentru funcii este virgul (,), folosit pentru sepr rgumentele
multiple pe cre le pote ccept o funcie. rgumentele sunt ntot deun ncdrte de opertorul
de pelre. Exemplu:
function numefct(rg1, rg2)
{
instruciuni;
}
9. Opertori pentru structuri de dte
Opertori pentru structuri de dte este denumire folosit pentru doi opertori necesri
tunci cnd lucri cu structuri de dte. Structurile de dte sunt cdre de lucru cre u fost sette
pentru stocre ntr-o modlitte orgnizt unei su mi multor informii esenile. n
JavaScript, obiectele sunt folosite l grupre informiilor pentru servi unui scop mult mi
specific.
Un opertor cre trebuie cunoscut bine n lucrul cu obiecte este punctul (.), numit n limbj
de specilitte opertor pentru membrul unei structuri. El permite referire l un membru
(vribil, funcie su obiect) cre prine obiectului specifict.
Sintx este:
obiect.vribil
obiect.functie()
obiect.ltObiect
Modlitte cest de referire l o informie, numit de obicei notie cu punct, ntorce
vlore vribilei, funciei su obiectului flt cel mi n drept.
Opertorul pentru membru, numit i opertor indice l tbloului, se folosete pentru cces
o dt specific dintr-un tblou. Simbolizt printr-o pereche de prnteze drepte, permite
referire l orice membru l unui tblou.
Sintx este:
tblou[index]
10. Opertori l nivel de bit
L nivelul cel mi de jos, numerele ntregi su rele (c i tote celellte dte) sunt stocte n
memorie sub form de bii. stocre se fce folosind sistemul binr de numerie, n cre orice
numr ntreg pote fi reprezentt folosind simbolurile 0 i 1. n funcie de locul pe cre-l ocup,
un bit stbilit l 1 reprezint o vlore egl cu 2 ridict l putere n, unde n este numrul de
cifre din drept s.
Opertori logici l nivel de bit
L folosire opertorilor logici l nivel de bit, JavaScript mperechez opernzii bit cu bit,
poi execut operi supr fiecrei perechi de bii.
Opertor
Descriere
&
Opertorul l nivel de bit ND ntorce 1 dc mbii opernzi sunt 1.
8
|
^
ltfel ntorce 0.
Opertorul l nivel de bit OR ntorce 1 dc oricre dintre opernzi este
1. ltfel, ntorce 0.
Opertorul l nivel de bit OR exclusiv ntorce 1 dc unul i numi unul
dintre opernzi este 1. ltfel, ntorce 0.
if
Instruciune if este un dintre cele mi folosite instruciuni. Fiecre limbj de progrmre o
deine ntr-o form su lt i utilizre ei nu pote fi evitt. Instruciune if se folosete stfel:
if (conditie) {
[instructiuni]
}
conditie pote fi orice expresie logic. Dc rezulttul lui conditie este true, sunt executte
instructiuni i executre progrmului continu. Dc ns conditie ntorce flse, JavaScript
ignor instructiuni i continu.
Indentre instruciunilor cuprinse ntre colde este o prctic frecvent. cest confer
scripturilor un spect logic i se dovedete util mi les cnd imbrici instruciuni if (tunci
cnd se folosete o instruciune if n interiorul ltei instruciuni if).
if..else
Uneori, simpl folosire instruciunii if nu este suficient i putei rezerv un set de
instruciuni cre s fie executte dc expresi condiionl ntorce flse. cest lucru se
relizez prin dugre unui bloc de instruciuni else imedit dup blocul if:
if (conditie) {
instructiuni
} else {
instructiuni
}
Dc nu se dorete intrre direct ntr-un bloc prestbilit, combini poriune else cu lt
instruciune if. Folosind cest metod, se pot evlu ctev scenrii cceptbile diferite ninte
de execut operiune corect. Frumusee utilizrii metodei const n fptul c se pote
nchei tot cu un segment else. Formtul pentru cest tip de instruciune este urmtorul:
if (conditie) {
instructiuni
} else if (conditie) {
instructiuni
} else {
instructiuni
}
try..ctch
Instruciune try..ctch este folosit pentru ignor trtre prestbilit erorilor.
Instruciuni itertive
Crere unei iterii n interiorul unui script pote servi multor scopuri.
for
Sintx instruciunii for este urmtore:
for([expr_initilizre]; [expr_conditie]; [expr_ciclu]) {
instructiuni
}
10
Cele trei expresii ncdrte de prnteze sunt opionle, dr dc este omis un dintre ele,
semnul punct i virgul (;) tot este necesr. n felul cest, fiecre expresie este pstrt colo
unde i este locul.
n mod obinuit, expresi de iniilizre este folosit pentru iniiliz i chir pentru
declr o vribil cre v fi folosit drept contor pentru ciclu. Dup cee, expresi condiie
trebuie evlut l true ninte de fiecre execuie instruciunilor ncdrte de colde. n
sfsit, expresi ciclu incrementez su decrementez vribil folosit drept contor pentru
ciclu. Dc expresi condiie ntorce flse l primul ciclu, instruciunile cuprinse ntre colde
nu sunt executte niciodt.C i n czul instruciunilor if, ciclurile for pot fi imbricte. Numrul
imbricrilor nu este limitt.
for..in
Cu instruciune for..in se pote execut cte un set de instruciuni pentru fiecre propriette
dintr-un obiect. Se pote folosi ciclul for..in cu orice obiect JavaScript, indiferent dc re su nu
proprieti. Pentru fiecre propriette se execut cte o iterie, c dc obiectul nu re nici o
propriette nu se desfor nici un ciclu. for..in funcionez i cu obiectele prticulrizte; o
vribil unui obiect prticulrizt JavaScript este considert o propriette i, c urmre, se
execut cte un ciclu pentru fiecre. Sintx este:
for (propriette in obiect) {
instructiuni
}
propriette este un element literl de tip ir genert de JavaScript. Pentru fiecre ciclu, lui
propriette i se tribuie urmtorul nume de propriette coninut n obiect, pn ce sunt folosite
tote.
while
Instruciune while cionez n mre prte c un ciclu for, dr nu include n declri ei
expresi de iniilizre su de incrementre vribilelor. Vribilele trebuie declrte ninte de
le increment su le decrement n blocul instruciuni. Sintx este urmtore:
while (expr_conditie) {
instructiuni
}
do..while
Limbjul ofer o instruciune do..while, cre funcionez exct c o instruciune while, tt
dor c nu verific expresi condiionl dect dup prim iterie. n felul cest se grntez
c scriptul dintre colde v fi executt cel puin o dt. Sintx este urmtore:
do {
instructiuni
} while (expr_conditie);
brek i continue
Un spect cre trebuie remrct este c, tunci cnd se folosete un ciclu, cest continu s
se repete pn ce condii specifict ntorce flse. Uneori ns se dorete ieire din ciclu
ninte de fi juns l cold finl. cest lucru se fce dugnd fie brek, fie continue n
blocul instructiuni l ciclului.
Instruciune brek ntrerupe definitiv ciclul, n vreme ce instruciune continue sre peste
instruciunile rmse din ciclul curent, evluez expresi ciclului (dc cest exist) i ncepe
urmtorul ciclu.
n urmtorul exemplu se pote vede diferen dintre cele dou instruciuni. Scriptul
Instruciuni lbel
Instruciuni with
Instruciune with este folosit pentru evit s specifici n mod repett referire l obiect,
tunci cnd i ccesi proprietile su metodele. Orice propriette su metod dintr-un bloc
with pe cre JavaScript nu o recunote este socit cu obiectul specifict pentru cel bloc.
Sintx este urmtore:
with (obiect) {
instructiuni
}
obiect specific referire l obiect cre trebuie folosit, dc cest nu exist n blocul
instructiuni. Este forte util tunci cnd folosii funcii mtemtice vnste, disponibile dor
prin intermediul obiectului Mth.
Instruciuni switch
Instruciune switch este folosit pentru compr o vlore cu multe ltele. Se pote crede
c srcin cest pote fi relizt dor prin folosire mi multor instruciuni if, dr
instruciune switch reprezint rspunsul corect. E este mi uor de citit i permite specificre
unui set prestbilit de instruciuni cre s fie executte n czul n cre nu este gsit o potrivire.
Instruciune brek este folosit pentru stop orice executre ulterior codului cre mi
rms n instruciune switch. Dc n- fost folosit nici o instruciune brek, codul rms pentru
fiecre cz (cse) v fi executt.
Funcii
Executre unei su mi multor funcii este obiectivul tuturor progrmelor JavaScript. n
form s ce mi simpl, un script pote s citesc su s prei dte, s efectueze operii supr
unui set de dte su s fieze i s trimit dte n exterior. Se pot efectu combinii le cestor
instrumente fundmentle su dor unul dintre ele, pentru un scop generl.
ndeplinire unor diferite srcini necesit multe linii de cod JavaScript. Pote fi necesr c
unele seciuni le scriptului s fie executte imedit ce o pgin Web este ncrct n browser.
lte pri le scriptului pot fi utile dc sunt mnte pn ce un formulr HTML ccept dte de
l client. Uneori este posibil s vem nevoie de pri le unui script de mi multe ori, pote chir
de un numr nelimitt de ori, i pote deveni necesr repetre intermitent unei seciuni de
cod.
Tote ceste probleme duc l idee divizrii unui script n pri mi mici, cre s urmresc
un el individul, specific. cest el specific pote fi semnlre unei "lovituri nimerite n plin"
n timpul unui joc JavaScript. Vlidre dtelor introduse ntr-un formulr HTML este lt
srcin pe cre v fi nevoie c un script s-o execute de mi multe ori tunci cnd cinev
vizulizez pgin Web.
Este ct se pote de justifict divizre logic unui script n seciuni cre s urmresc
fiecre un singur obiectiv. L momentul potrivit, o numit seciune unui script pote fi pelt
pentru executre. JavaScript ofer cest cpcitte prin intermediul unei structuri numite
funcie.
O funcie JavaScript este pur i simplu un script cre este desprins c o seciune seprt de
cod i crei i se tribuie un nume. Folosind numele respectiv, un lt script pote s peleze dup
cee executre celei seciuni oricnd i de oricte ori re nevoie. Multe limbje de
progrmre, de pild C/C++ i Java, folosesc de semene funcii, n timp ce ltele conin
ceei semntic dr o numesc metode, proceduri su subrutine.
Funciile jut l divizre multelor srcini pentru cre fost conceput un progrm. Cnd
sunt pelte, funciilor li se pot trnsfer vlori, numite rgumente. Dup cee, rgumentele se
pot folosi c vribile n interiorul blocului de instruciuni.
Crere funciilor
Urmtorul frgment de cod rt sintx pentru declrre unei funcii n JavaScript:
12
vribilelor globle este blocul <hed> l documentului HTML, pentru sigur c fost
declrt ninte de fi utilizt. Vribil nu trebuie declrt din nou n interiorul
vreunei funcii.
dc vribil este necesr numi n interiorul unei funcii nume, e trebuie declrt n
interiorul funciei respective. Trebuie vut grij c l declrre vribilei s se
folosesc cuvntul-cheie vr. stfel v pute fi modifict dor din interiorul funciei,
JavaScript considernd c cest vribil este unic i distinct de orice vribile
globle cre pot ve celi nume.
rolul sunt crcteristici specile le obiectului, dependente de timp. Stre este un tip de
elemente de dte cre s schimb n timp i, n generl, rt o vlore curent pentru obiect.
ncpsulre
//implementre
}
Obiectul specil this dresez obiectul curent n declrre tipului de obiect. Proprietile i
metodele noului tip de obiect sunt definite prin tribuiri fcute lui this. Proprietile iniile
pentru noul obiect sunt dte c prmetri i funciei cretore; n blon, ele sunt numite
instVr1 i instVr2. n definire tipului de obiect, sunt prezente numi numele metodelor
(method1 i method2). Implementre metodelor c funcii JavaScript (function1 i function2)
v fi prezentt mi trziu.
Este preferbil c declrrile noilor tipuri de obiecte s fie plste n seciune <hed>
documentului HTML, pentru fi citite l nceputul procesului de ncrcre documentului. n
felul cest se sigur cunotere declrrilor clsei tunci cnd este interprett restul
progrmului. De obiecei, n segmentul <body> l documentului HTML sunt plste srcinile de
ciune.
Deorece JavaScript este un limbj bzt pe instne, n timpul rulrii de pote extinde cu
proprieti i metode noi orice obiect existent. n felul cest, o crcteristic nou este dugt
unui singur obiect prticulr i nu sunt fectte celellte obiecte de celi tip.
Obiecte JavaScript
Noti cu punct
n JavaScript, ccesre proprietilor i metodelor unui obiect se fce prin intermediul
notiei cu punct. cest notie, demonstrt n urmtorul exemplu de sintx, ofer o metod
de tip ierrhie pentru ccesre proprietilor i implementre metodelor:
objectNme.propertyNme
objectNme.methodNme(rguments)
Obiectul curent este drest prin intermediul vribilei specile this.
Modelul de obiect JavaScript
Obiectele JavaScript sunt relmente obiecte, n sensul c u proprieti i metode, i pot
rspunde l evenimente. Cu tote ceste, JavaScript nu re celei cpciti OOP rele de
motenire. Spre deosebire de ierrhi de clse, cre este bzt pe motenire, modelul de obiecte
JavaScript este o ierrhie de coninere, cum este rtt n figur de mi jos:
Coninere este principiul conform crui un obiect cconine un lt obiect. ntre obiecte nu
exist o legtur genelogic, deorece unul nu deriv din celllt. Drept urmre, un obiect nu
pote moteni proprietile i metodele ltui obiect, i nici nu se pote subclsific un obiect n
ierrhie.
Coninere n JavaScript
16
Clsificre obiectelor
Cele mi multe obiecte sunt fie prte de client, fie pe prte de server, fie esenile.
Funcionlitte pe prte de client ncorport n JavaScript se foclizez supr cee ce se
pote fce cu pginile HTML. n generl, primul set de obiecte re o corelre cu browserul i cu
etichetele HTML din cest.
Mjoritte obiectelor JavaScript sunt reprezentri c obiecte le etichetelor HTML. Tbelul
de mi jos enumer obiectele pe prte de client i etichetele HTML cre le corespund.
Obiect JavaScript
Button
Checkbox
Hidden
Fileuplod
Pssword
Rdio
Reset
Select
Frme
Document
Lyer
Link
Imge
re
nchor
pplet
Plugin
Form
Submit
Text
Textre
Option
Obiectul Window
Un browser Web este prezentt utiliztorului ntr-o ferestr i tot cee ce utiliztorul fce cu
browserul se execut n interiorul ferestrei respective. Mi mult chir, tote elementele ecrnului
sunt de semene coninute n ferestr respectiv.
Obiectul Window este considert obiectul de nivelul cel mi nlt n ierrhi obiectelor
JavaScript pe prte de client. Obiectul Window nu re o etichet HTML corspondent, dr este
cret tunci cnd se deschide o nou ferestr de browser. Proprietile i metodele obiectului
Window sunt urmtorele:
Tip
Element
Descriere
Metod
tob()
Decodific un ir cre fost codifict n bz 64
lert()
fiez o cset de vertizre cu irul de text
trnsfert.
bck()
ncrc pgin nterior
blur()
Dezctivez o ferestr.
btob()
Codific un ir n bz 64 .
cptureEvents()
Stbilete c ferestr s cptureze tote
evenimentele de un tip specifict .
clerIntervl()
terge intervlul stbilit cu metod setIntervl().
clerTimeout
terge puz stbilit cu metod setTimeout().
18
close()
confirm()
crypto.rndom()
crypto.signText()
disbleExternlCptu
re()
enbleExternlCptur
e()
find()
focus()
forwrd()
hndleEvent()
home()
moveBy()
moveTo()
open()
print()
prompt()
releseEvents()
resizeBy()
resizeTo()
routeEvent()
scroll()
scrollBy()
scrollTo()
setHotKeys()
setIntervl()
setResizble()
setTimeout()
setZOptions()
stop()
Propriette closed
crypto
defultSttus
document
frmes
history
innerWidth
length
loction
loctionbr
loctionbr.visible
menubr
menubr.visible
nme
offscreenBuffering
opener
outerHeight
outerWidth
pgeXOffset
pgeYOffset
prent
personlbr
personlbr.visible
screenX
screenY
scrollbrs
scrollbrs.visible
self
sttus
sttus.visible
toolbr
toolbr.visible
top
window
21
lstModified
lyers
linkColor
links
plugins
referrer
tgs
title
URL
vlinkColor
width
Obiectul Frme
Cdrele sunt obiecte forte importnte, folosite pentru mbuntire prezentrii pliciilor
Web. Obiectul Frme reprezint un cdru dintr-o structur de cdre. ntr-o prezentre de cdre
multiple, obiectul Window este pgin cre conine definire <frmeset>, n timp ce celellte
pgini sunt considerte cdre n cest context. Proprietile i metodele obiectului Frme sunt
dte n tbelul de mi jos:
Tip
Metod
Element
blur()
clerIntervl()
clerTimeout()
focus()
print()
setIntervl()
setTimeout()
Propriette document
frmes
length
nme
prent
self
top
window
Descriere
Dezctivez cdrul .
nulez o execuie repett.
nulez orice execuie ntrzit.
ctivez un cdru .
fiez cset de dilog Print.
Stbilete plnificre funciei pentru executre
repett.
Stbilete plnificre funciei pentru executre
ntrzit.
Documentul curent ncrct n interiorul unui
cdru.
Tblou coninnd referiri l cdrele copil.
Lungime tbloului de cdre.
tributul nme l etichetei <frme>.
Ferestr principl su cdrul principl din cre
sunt crete cdrele copil.
Fce referire l cdrul curent.
Ferestr de browser cre execut scriptul.
Fce referire l ferestr curent su l cdrul
curent.
Obiectul History
O veche crcteristic n softul browserelor este cpcitte de urmrii lociile cre u fost
vizitte n decursul unei sesiuni. cest crcteristic juns s fie cunoscut c list istoric, ir
obiectul History este echivlentul ei n JavaScript. Proprietile i metodele obiectului History
sunt dte n tbelul de mi jos:
Tip
Element
Descriere
Metod
bck()
ncrc precedent dres din list istoric.
22
forwrd()
go()
Propriette current
length
next
previous
Obiectul Loction
n Web, principlul este prezentre coninutului. Tote obiectele Window sunt concepute
pentru fi coninut pe ecrnul utiliztorului, dr coninutul respectiv trebuie s provin de
undev i, de cee, origine pginii este coninut n obiectul Loction. Proprietile i metodele
obiectului Loction sunt dte n tbelul de mi jos:
Tip
Element
Descriere
Metod
relod()
Rencrc dres URL curent n ferestr de
browser .
replce()
ncrc nou pgin trnsfert n browserul
curent .
Propriette hsh
Reprezint un nume de ncor n dres URL,
cre ncepe cu crcterul #.
host
Reprezint numele clcultorului gzd i
numrul de port l dresei URL.
hostnme
Reprezint prte cu numele clcultorului
gzd din dres URL
href
Reprezint dres URL complet.
pthnme
Reprezint prte PTH_INFO dresei URL.
port
Reprezint prte de port dresei URL.
protocol
Reprezint prte de protocol dresei URL.
serch
Prte de cutre dresei URL, inclusiv
crcterul ?.
Elemente esenile le modelului obiectului document (DOM)
Progresele importnte le Web-ului soluionez ntotdeun problemele vechi. De exemplu,
Java ofere o modlitte de dezvoltre unor plicii Web independente de pltform de lucru
prin folosire minipliciilor. Dei nu este l fel de importnt, modelul obiectului document
rezolv lt problem destul de veche - portbilitte scripturilor JavaScript i progrmelor
Java n contextul browserelor Web. DOM reuete cest lucru folosind interfee stndrd de
progrmre pliciilor (PI), cre sunt definite n Object Mngement Group (OMG)
Interfce Definition Lnguge (IDL) i, c urmre, pot fi utilizte de orice limbj cre respect
IDL. Se pote consider c interfeele colective le DOM sunt o modlitte de stndrdiz
obiectele n tote browserele, l distribuire de documente HTML i XML. Desigur, browserul
Web trebuie s ccepte DOM, ir micre n cest direcie cptt un ritm rpid.
ctulmente, DOM nu este forte complex, ci dor definete o structur logic i
stndrdizt documentelor, grie crei se pot construi, edit i rsfoi elemente i coninut n
documente HTML su XML. Structur DOM este pur i simplu o ierrhie de obiecte,
comprbil cu limbjului JavaScript su oricrui lt limbj bzt pe obiecte. Diferen este
c DOM re o interf PI util, neutr din punctul de vedere l limbjului, cre definete un
23
set stndrd de interefee. st nu nsemn c tote pliciile DOM vor fi bzte pe celei
obiecte; ele i pot defini propriile interefee i obiecte.
De l DHTML l DOM
Trnzii pginilor Web spre un model de obiect cunote multe etpe, dr puine sunt tt de
importnte c DHTML, cre, n sine, este nesemnifictic prin comprie cu DOM. cest se
dtorez fptului c DOM este un model stndrdizt de obiect pe cre progrmtorii Web l
doreu de mult vreme. De exemplu, dc un progrmtor Web trebuie s ctulizeze o pgin
Web cu modelul de obiect DHTML, v fi necesr un volum considerbil de informii, posibil
sub form unui ghid pentru progrmtori. n relitte, DHTML este pur i simplu o modlitte de
permite modificre obiectelor cre sunt cceste i mnipulte folosind tributele lor id i
nme. El nu introduce stndrdizre i simplificre din DOM, cre ncpsulez ntregul
document c un model de obiecte, reprezentndu-l sub form unei ierrhii su structuri
rborescente. Nodurile cestei structuri rborescente reprezint etichetele HTML i segmentele
de text pe cre le pot conine. ntregul document HTML se fl n structur cest rborescent,
rtnd tote obiectele i reliile ntre copii, prini i fri. Spre deosebire de DHTML, se pote
nvig prin structur rborescent documentului DOM, efectund modificri cu uurin.
24