JavaScript este un limbaj orientat pe obiecte. Un obiect este un lucru care are o serie de proprietãþi. O masã, un calculator ºi o
bicicletã sunt toate obiecte ale lumii fizice. Pentru JavaScript, obiectele sunt entitãþile prin intermediul cãrora utilizatorul interacþioneazã
cu browserele web, precum ferestrele ºi formularele, chiar ºi elementele formularelor, cum ar fi butoanele ºi casetele de bifare.
Obiectele, la rândul lor au anumite proprietãþi. Calculatorul are tastaturã, bicicleta are roþi, etc. În JavaScript, o fereastrã
are un titlu, un formular poate avea o casetã de validare, etc. Modificarea unei proprietãþi a obiectului poate modifica obiectul, iar o aceeaºi proprietate
poate fi aplicatã unor obiecte diferite (un exemplu din viaþa realã este aparatul foto, singur este doar un obiect, adãugat la un telefon devine alt obiect cu
ambele proprietãþi, aceea de telefon ºi camerã foto încorporatã, iar dacã la telefon adaugãm ºi un calculator, obþinem un
telefon smart, care are toate cele trei proprietãþi de la fiecare obiect în parte). Tastatura calculatorului ºi roþile bicicletei nu sunt singurele lor
proprietãþi. Ele sunt, la randul lor, obiecte, care pot avea la rândul lor proprietãþi (roata conþine spite, care sunt de asemenea obiecte).
Obiectele pot astfel conþine subobiecte.
Acþiunile pe care obiectele le pot realiza poartã numele de metode. Telefoanele sunã, calculatoarele se defecteazã ºi bicicletele merg.
Obiectele JavaScript au ºi ele metode: butoanele se apasã - clik(), ferestrele se deschid - open(), iar textul poate fi selectat - selected(). Parantezele ne
anunþã cã avem de-a face cu o metodã, nu o proprietate.
Putem grupa obiectele, proprietãþile ºi metodele pentru a obþine o descriere mai bunã a unui obiect sau pentru a descrie un proces. În JavaScript,
acestea sunt separate de puncte. Sintaxa poartã numele de sintaxã punctatã. Iatã exemple de obiecte ºi proprietãþile lor:
bicicleta.roti
calculator.unitate_de_stocare.disketa
document.imagine.nume
fereastra.stare
Si iatã ºi câteva exemple de obiecte ºi metode scrise în sintaxa punctatã:
document.scrie()
formular.elemente.buton_radio.clic()
Evenimentele sunt acþiuni efectuate de utilizator în timp ce viziteazã pagina. Trimiterea unui formular ºi miºcarea cursorului mouse-ului deasupra
unei imagini sunt douã exemple de evenimente.
Rutinele de tratare a evenimentelor (event handlers) sunt comenzile care se ocupã de evenimente. În JavaScript, dacã utilizatorul dã clic pe un
buton, rutina de tratare a evenimentului onClick va lua cunoºtinþã de acest lucru ºi va executa codul corespunzãtor.
| Rutine de tratare a evenimentelor: |
| Evenimentul |
Ce trateazã |
| onAbort |
Utilizatorul a renunþat la încãrcarea paginii |
| onBlur |
utilizatorul a pãrãsit obiectul |
| onChange |
utilizatorul a modificat obiectul |
| onClik |
utilizatorul a dat clik pe un obiect |
| onError |
scriptul a întâmpinat o eroare |
| onFocus |
utilizatorul a activat un obiect |
| onLoad |
s-a terminat încãrcarea obiectului |
| onMouseover |
cursorul mouse-ului s-a miºcat deasupra unui obiect |
| onMouseout |
cursorul mouse-ului a pãrãsit un obiect |
| onSelect |
utilizatorul a selectat conþinutul unui obiect |
| onSubmit |
utilizatorul a trimis un formular |
| onUnload |
utilizatorul a pãrãsit fereastra |
|
Valori ºi variabile
În limbajul JavaScript orice formã de informaþie este o
valoare.
Variabilele conþin valori. Limbajul JavaScript þine cont de majuscule
ºi minuscule. Numele variabilelor nu pot conþine spaþii sau semne de punctuaþie, ºi nu pot începe cu o cifrã. De asemenea, nu pot fi cuvinte
cheie ale limbajului JavaScript.
Exemple de valori ºi variabile:
numeleMeu = "Birkoff"
În acest exemplu
numeleMeu este variabila ºi
Birkoff este valoarea. Existã mai multe tipuri de valori:
| Tip |
Descriere |
| Numãr |
Contine orice valoare numericã. |
| ªir de caractere |
ªir de caractere încadrate de ghilimele. |
| Boolean |
Returneazã adevãrat (true) sau fals (false) |
| Nul |
orice variabilã fãrã conþinut, fãrã înþeles |
| Obiect |
Orice valoare asociatã unui obiect |
| Funcþie |
Valoarea returnatã de o funþie |
Operatorii sunt simbolurile folosite în lucrul cu variabilele. Când daþi unei variabile o valoare, atribuiþi acea valoare variabilei, ºi folosiþi un
operator de atribuire pentru a efectua acþiunea. Cu excepþia operatorului de egalitate, toþi ceilalþi operatori de atribuire sunt scurtãturi de
modificare a valorii unei variabile. De exemplu, o modalitate mai scurtã de a spune
x=x+3 este
x+=3
| Operator: |
Acþiune: |
| x + y (numeric) |
adunã x cu y |
| x + y (ºir de caractere) |
concaterneazã (lipeºte) x cu y |
| x - y |
scade y din x |
| x * y |
înmulþeºte x cu y |
| x / y |
împarte pe x la y |
| x % y |
modulul lui x ºi y (restul împãrþirii lui x la y) |
| x++, ++x |
adunã x cu 1 (identic cu x = x + 1) |
| x--, --x |
scade 1 din x (identic cu x = x - 1) |
| -x |
schimbã semnul lui x (devine negativ) |
Deºi atât
x++ cât ºi
++x incrementeazã cu o unitate valoarea lui x, operaþiile nu sunt identice; prima îl
incrementeazã pe x dupa ce atribuirea a avut deja loc, iar cea de-a doua înainte. De exemplu, dacã x are valoarea 5,
y = x++ va avea
y = 5
ºi
x = 6, în timp ce daca se face
y = ++x se va obþine
y = x = 6. Operatorul minus functioneazã similar. Dacã la adunarea a
douã valori combinaþi numere cu ºiruri de caractere, rezultatul final este un ºir de caractere. De exemplu, rezultatul adunãrii
nume + 9 va
rezulta
nume9
| Atribuire |
Acþiune |
| x = y |
îi dã lui x valoarea lui y |
| x += y |
identic cu x = x + y |
| x -= y |
identic cu x = x - y |
| x *= y |
identic cu x = x * y |
| x /= y |
identic cu x = x / y |
| x %= y |
identic cu x = x % y |
Dacã doriþi sã comparaþi valoarea unei variabile cu altã variabilã, sau valoarea unei variabile cu o valoare literalã puteþi face
asta în modul urmãtor:
dataDeAzi == "joi"
Când comparaþi ºiruri de caractere trebuie sã fiþi atenþi asupra faptului cã "a" este mai mare decât "A", iar "abc" mai mic
decât "bu".
| Comparare |
Acþiune |
| x == y |
returneazã true (adevãrat) dacã x ºi y sunt egale |
| x != y |
returneazã true dacã x ºi y nu sunt egale |
| x > y |
returneazã true dacã x este mai mare decât y |
| x >= y |
returneazã true dacã x este mai mare sau egal decât y |
| x < y |
returneazã true dacã x este mai mic decât y |
| x <= y |
returneazã true dacã x este mai mic sau egal decât y |
| x && y |
returneazã true dacã atât x cãt ºi y sunt adevãrate |
| x || y |
returneatã true dacã x sau y este adevãrat |
| !x |
returneazã true daca x este fals |