Rutine, valori, variabile, atribuiri ºi comparaþii


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