online: 1; azi: 1348; total: 51803 Webdesign - Javascript - 11

Obiectele Java Script - 1


Pentru inceput trebuie sa stiti ce sunt obiectele in programare si care sunt conceptele fundamentale ale programarii orientate spre obiecte (OOP).
JavaScript nu este un program orientat pe obiecte (OO), cum sunt C++ sau Java, dar este bazat pe obiecte.
In lumea din jurul nostru obiectele sunt de exemplu: o carte, o masina, un televizor; in JavaScript obiectele sunt de exemplu: un formular, o fereastra, butoane, imagini ...
Toate elementele dintr-o pagina sunt vazute de JavaScript ca fiind obiecte.
Obiectele au anumite proprietati, de exemplu in lumea reala televizoarele au butoane, masinile au roti; asa si in JavaScript obiectele au proprietati: formularele au buton, ferestrele au titluri.
Pe langa obiecte si proprietati, in JavaScript avem si termenul "metode".
Metodele reprezinta functiile pe care un obiect poate sa le faca. Ferestrele se deschid cu metoda "open()", butoanele au metoda "click()". Parantezele rotunde "()" arata ca se face referire la o metoda, nu la o proprietate.
Astfel, putem rezuma ca un obiect este o colectie de proprietati si functii (metode)
Sintaxa pentru folosirea obiectelor este:

  • obiect.prorietate
    obiect.metoda()
- Punctul (.) se foloseste pentru a specifica detinatorul metodei sau proprietatii.

Obiectele din JavaScript le putem cataloga in trei categorii principale:
  • - Obiecte pe partea de client
    - Obiecte pe partea de server
    - Obiecte esentiale
Astfel avem mai multe tipuri de obiecte care pot fi folosite, pentru incepatori e bine de stiut in principal obiectele pe partea de client si cele esentiale, cum sunt: "string", "math" sau cele care vin de la etichetele HTML.
Mai multe astfel de obiecte pot forma o celula (o grupa) numita "clasa", astfel, diferite obiecte incorporate pentru o executie comuna formeaza un "set de clase" care se mai numeste si "biblioteca de clase", iar mai exact pentru limbajul JavaScript "biblioteca de obiecte JavaScript", si pot fi refolosite.
JavaScript are urmatoarele obiecte esentiale, predefinite:
  • 1 - String
    2 - Math
    3 - Date
    4 - Array
    5 - Global

1. Obiectul string

String (sau sir) se foloseste pentru a prelua text.
Proprietatea acestui obiect este:

  • length - returneaza numarul de caractere dintr-un sir (string)
Metodele obiectului string sunt urmatoarele:
  • anchor() - Returneaza un sir ca si "anchor"
    big() - Returneaza un sir cu text mare
    blink() - Returneaza un sir care clipeste
    bold() - Returneaza un sir cu litere ingrosate
    charAt() - Returneaza un caracter de la pozitia care este specificata
    charCodeAt() - Returneaza codul ASCII al unui caracter de la o pozitie specificata
    concat() - Returneaza doua siruri concatenate
    fixed() - Returneaza un sir cu caractere tip
    fontcolor() - Returneaza un sir cu o culoare specificata
    fontsize() - Returneaza un sir cu litere de o anume marime
    fromCharCode() - Returneaza valoare Unicode a unui caracater
    indexOf() - Returneaza pozitia primei aparitii a unui subsir in un sir, sau daca subsirul nu e gasit, valoarea -1
    italics() - Returneaza un sir in italic (scris aplecat)
    lastIndexOf() - Returneaza pozitia primei aparitii a unui subsir in un sir, sau daca acesta nu e gasit, -1 (Importanr: se incepe din dreapta sirului spre stanga)
    link() - Returneaza un sir ca hyperlink
    match() - Similar cu indexOf si lastIndexOf, dar aceasta metoda returneaza sirul specificat sir, sau "null", in locul unor valori numerice
    replace() - Inlocuieste intr-un sir unele caractere specificate cu altele noi specificate.
    search() - Returneaza un numar intreg daca sirul contine caracterele specificate, altfel returneaza -1
    slice() - Returneaza un sir incepand de la pozitia index specificata
    small() - Returneaza un sir cu caractere mai mici
    split() - Imparte un sir in mai multe siruri, in functie de caracterele specificate
    strike() - Returneaza un sir taiat cu o linie la mijloc
    sub() - Returneaza un sir ca indice
    substr() - Returneaza un subsir specificat astfel, exemplu: 12,8 returneaza 8 caractere, incepand de la caracterul al 12-lea (se incepe de la 0)
    substring() - Returneaza un subsir specificat astfel, exemplu: 8,12 returneaza toate caracterele, incepand de la caracterul al 8-lea, pana la al 12-lea
    sup() - Returneaza un sir ca putere (superscript)
    toFixed(n) - Returneaza sirul numeric rotunjindu-l la o valoare cu 'n' zecimale
    toLowerCase() - Converteste un sir in litere mici
    toUpperCase() - Converteste un sir in litere mari

In continuare este prezentat un exemplu in care se foloseste proprietatea "length" pentru a afla cate elemente are un sir si metoda "indexOf" prin care verificam daca un sir dat contine un anumit cuvant specificat. Daca este gasit cuvantul, se returneaza pozitia primei litere din el, in caz contrar apare mesajul "Cuvantul nu a fost gasit"
<script type="text/javascript">
var str="discant.ro - Cursuri, Jocuri si Anime"
document.write(src+"<br />")
document.writeln("Acest sir are "+ str.length + " caractere")
var pos=str.indexOf("Jocuri")
if (pos>=0) {
document.write("Jocuri incepe de la pozitia: ")
document.write(pos + "<br />")
}
else
{
document.write("Cuvantul nu a fost gasit!")
}
</script>
Primului caracter din sir are pozitia 0, al doilea caracter are pozitia 1, si tot asa ....
Dupa ce este adaugat intr-un document HTML, acest script va afisa in pagina urmatorul rezultat:
discant.ro - Cursuri, Jocuri si Anime
Acest sir are 37 caractere Jocuri incepe de la pozitia: 22

- Iata un alt exemplu in care este foloseste metoda replace().
Avem un sir din care vom pastra doar numerele, eliminand toate celelalte caractere.
<script type="text/javascript">
<!--
var sir = 'Un sir test: 123ab 78%';
var sablon = /\D/g;             // \D este echivalent cu [^0-9] iar /g determina urmarirea sablonului in tot sirul
sir = sir.replace(sablon, '');

document.write(sir);
//-->
</script>
- In acest exemplu avem variabila "sir" ce contine sirul complet si o variabila "sablon" ce contine o expresie regulata care reprezinta toate caracterele non-numerice, \D fiind echivalent cu [^0-9] (mai multe detalii despre expresiile regulate gasiti la: RegExp Javascript).
- Expresia sir.replace(sablon, '') inlocuieste cu '' (adica nimic) caracterele din "sir" care se incadreaza in "sablon".
- document.write(sir) va afisa sirul care a ramas, adica 12378

2. Obiectul Array (tablou sau matrice)

Obiectul Array (numit si matrice sau tablou de date) se foloseste pentru a stoca mai multe valori intr-un singur nume de variabila.
Fiecare valoare stocata devine un element al tabloului, acesta are asociat un "numar index" (sau cheie). Cu ajutorul acestei chei se poate face referire la oricare element din tablou.
Cu operatorul new se poate crea o "instanta" (incepere) a obiectului Array, ca in exemplul urmator:

  • var nume_colegi = new Array(4)
- Unde intre parantezele rotunde este trecut numarul de elemente ale tabloului, aici 4.
Numarul de elemente, cheile, incep implicit de la 0.
Pentru a da valori elementelor din tablou, se scrie numele tabloului urmat de o pereche de paranteze patrate, in interiorul carora se adauga cheia specifica fiecarui element, apoi semnul egal si valoarea dorita. Dupa cum puteti vedea in urmatorul exemplu:
  • nume_colegi[0] = "Cristi"
    nume_colegi[1] = "Ion"
    nume_colegi[2] = "Simona"
    nume_colegi[3] = "Adi"
Sau puteti scrie si astfel:
  • var nume_colegi = Array('Cristi', 'Ion', 'Simona', 'Adi');
- In cazul acesta cheile se subanteleg si sunt aceleasi ca in prima varianta, incepand cu 0.

Pentru a face referire la un anumit element din tablou si pentru a extrage anumite valori din Array, se scrie numele tabloului si intre parantezele patrate cheia specifica acelui element; ca in exemplul urmator:
  • coleg = nume_colegi[0]
    colega = nume_colegi[2]
Astfel, variabila "coleg" va avea valoarea "Cristi" si variabila "colega" valoarea "Simona".

Pentru a afla numarul de elemente ale unui Array, se foloseste proprietatea "length", ca in exemplu urmator:
  • nr_colegi = nume_colegi.length

Obiectul Array are urmatoarele metode:
  • concat() - Returneaza un tablou rezultat din concatenarea a doua tablouri
    join() - Returneaza un tablou format din toate elementele unui tablou concatenat
    reverse() - Returneaza inversul unui tablou
    slice() - Returneaza o parte specificata a unui tablou
    sort() - Returneaza tabloul ordonat
Urmatorul exemplu foloseste o instructiune "for" care parcurge un tablou (aici tabloul "nume_colegi"), extrage valoarea fiecarui element si o afiseaza.
<script type="text/javascript">
<!--
var nume_colegi = new Array();
nume_colegi[0] = "Cristi";
nume_colegi[1] = "Ion";
nume_colegi[2] = "Simona";
nume_colegi[3] = "Adi";

var nr_elemente = nume_colegi.length;           // Afla nr. elemente din matrice

document.write("Afiseaza numele fiecarui coleg: <br />");
for (i=0; i<nr_elemente; i++) {
    document.write(nume_colegi[i] + "<br />");
}
//-->
</script>
- Am definit variabila "nr_elemente" pentru a afla numarul de elemente din matrice, pentru a-l folosi cu instructiunea "for". Este utila aceasta metoda deoarece de multe ori putem lucra cu matrici ale caror nr. de elemente nu-l stim exact. - In pagina HTML va fi afisat urmatorul rezultat:
Afiseaza numele fiecarui coleg:
Cristi
Ion
Simona
Adi

Iata un alt exemplu din care puteti intelege cum se aplica metoda "sort()" si efectul acesteia. Folosim acelasi exemplu de mai sus.
"sort()" sorteaza elementele din Array in ordine alfabetica (sau crescatoare in cazul valorilor numerice).
<script type="text/javascript">
<!--
var nume_colegi = new Array();
nume_colegi[0] = "Cristi";
nume_colegi[1] = "Ion";
nume_colegi[2] = "Simona";
nume_colegi[3] = "Adi";

var nr_elemente = nume_colegi.length;             // Afla nr. elemente din matrice
nume_colegi.sort();             // Aranjeaza elementele in ordine crescatoare, alfabetic

document.write("Afiseaza numele in ordine alfabetica: <br />");
for (i=0; i<nr_elemente; i++) {
    document.write(nume_colegi[i] + "<br />");
}
//-->
</script>
- In pagina HTML va fi afisat urmatorul rezultat:
Afiseaza numele in ordine alfabetica:
Adi
Cristi
Ion
Simona

Incercati sa creati mici exemple in care sa lucrati si cu alte tabele (create de dv.) asi instructiuni.