Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Nucleul limbajului JavaScript

html



+ Font mai mare | - Font mai mic



Nucleul limbajului JavaScript



Nucleul limbajului JavaScript (Core JavaScript) include elementele de baza ale limbajului: tipuri de variabile si constante, operatori, structuri de control, instructiuni, reguli pentru definirea functiilor si obiectelor, functii si obiecte predefinite etc.

1 Simboluri

Simbolurile sunt cele mai mici cuvinte, expresii sau caractere pe care le poate "intelege" procesorul JavaScript. In cursul procesarii u nui script sunt identificate simbolurile si se ignora spatiile albe si comentariile. Simbolurile utilizate in limbajul JavaScript pot fi incluse in patru categorii: identificatori, cuvinte-cheie, elemente literale si operatori. Identificatorii sunt nume care reprezinta variabile, metode sau obiecte si sunt alcatuiti din caractere alfanumerice, la care se adauga liniuta de subliniere. Unele nume constituie cuvinte-cheie, incluse intr-un set de cuvinte rezervate. Pentru definirea unui identificator trebuie respectate urmatoarele reguli:

un identificator trebuie sa inceapa cu o litera sau cu o liniuta de subliniere;

celelalte caractere incluse in identificator pot fi litere (minuscule si majuscule), cifre (de la 0 la 9) si liniute de subliniere. Rezulta ca identificatorul nu poate contine spatii;

incepand cu versiunea 1.5 a JavaScript identificatorii pot contine caractere Unicode sau secvente escape Unicode, de tipul uXXXX (ex.u0009 pentru tab, u0020 pentru spatiu).

Procesorul JavaScript distinge minusculele de majuscule (limbajul este case-sensitive). Cuvintele-cheie sunt identificatori predefiniti, constituind nume pentru metode, obiecte, structuri de control etc. Acestea sunt incorporate in JavaScript, fiind disponibile intotdeauna pentru utlizatori. Cuvintele rezervate sunt cuvinte-cheie si identificatorii pastrati pentru o posibila utilizare viitoare. Pentru precizarea comentariilor, in JavaScript sunt utilizate doua modalitati, folosite si in limbajele C/C++ si Java. Prima modalitate, care utilizeaza doua caractere slash ( consecutive, este utilizata pentru comentarii pe un singur rand. A doua modalitate, utilizata pentru blocuri mari de comentarii, utilizeaza secventele si la inceputul, respectiv sfarsitul unui astfel de bloc. Elementele literale sunt numere sau siruri folosite pentru a reprezenta valori fixe. Acestea nu se modifica in cursul executiei scripturilor. Tipuri de elemente literale:

numar intreg: elementele literale de acest tip pot fi exprimate in format zecimal, octal sau hexazecimal;

virgula mobila: elementele literale de acest tip reprezinta numere zecimale reale;

valoare booleana: elemente literale booleene sunt true si false

sir: un element literal de tip sir este format din zero, unul sau mai multe caractere incadrate de ghilimele simple ( ' ' ) sau duble ( ' ');

tablou: un element literal de tip tablou (array) reprezinta o lista inclusa intre paranteze patrate ([ ]), formata din zero sau mai multe expresii separate prin virgula;

obiect: un obiect literal este o lista formata din niciuna sau mai multe perechi de nume de proprietati si valori asociate ale unui obiect, incluse intre acolade ().

Operatorii sunt identificatori care reprezinta modalitati de evaluare sau manipulare a combinatiilor de expresii.

2 Valori, variabile si constante

Valori Valorile utilizate in limbajul JavaScript au urmatoarele tipuri de date:

numere (number);

valori logice (boolean), acestea putand fi true sau false

siruri (string);

null (cuvant-cheie care specifica o valoare nula) este o valoare primitiva;

undefined (proprietate care arata ca unei variabile nu i-a fost atribuita inca o valoare) este, de asemenea, o valoare primitiva.

Spre deosebire de alte limbaje, JavaScript este un limbaj cu tipuri dinamice, ceea ce inseamna ca nu este necesar sa se specifice tipul unei variabile atunci cand aceasta este declarata si ca tipul datelor este convertit automat pe durata executiei scripturilor. In expresiile care implica siruri si valori numerice impreuna cu operatorul +, valorile numerice sunt convertite automat in siruri, ca in exemplele urmatoare:

X= "varsta mea este " + 42 // intoarce "varsta mea este 42" y= 42 + " este varsta mea" // intoarce "42 este varsta mea"

Variabile O variabila este numele simbolic atribuit unei locatii din memoria calculatorului unde sunt stocate date. Pentru a utiliza datele stocate in locatie, se foloseste numele (identificatorul) variabilei. Variabilele pot fi declarate in doua moduri:

prin atribuirea unei valori (ex., x = 42

prin utilizarea cuvantului-cheie var (ex., var x sau var x = 42

Variabilele declarate fara var sunt globale in intreg programul.

Daca o variabila este declarata in interiorul unei functii, ea este numita locala, fiind accesibila numai in cadrul functiei , doar daca se foloseste var. Variabila este creata de fiecare data cand functia este apelata, fiind distrusa la incheierea executiei functiei. Astfel, este posibil ca in functii diferite sa se declare variabile cu acelasi nume, acestea utilizand blocuri de memorie diferite.     O variabila careia nu i-a fost atribuita nici o valoare are valoarea undefined. Rezultatul evaluarii acestei variabile depinde de modul in care a fost declarata aceasta. Astfel, daca variabila a fost declarata fara cuvantul-cheie var, va rezulta o eroare de executie. Daca pentru declararea variabilei a fost utilizat cuvantul-cheie var, va rezulta o valoare nedefinita sau NaN (Not a Number) - intr-un context numeric.    JavaScript este un limbaj flexibil in ceea ce priveste datele utilizate. Astfel, la declararea variabilelor nu se cere specificarea tipului de date stocate. In plus, este posibil ca in script sa se modifice tipul datelor stocate in variabile.

Constante Constantele pot fi numai citite, neexitand posibilitatea modificarii valorii acestora sau redeclararii lor in cursul executiei scriptului in care au fost declarate. Pentru declararea unei constante se foloseste cuvantul-cheie const si se utilizeaza sintaxa valabila pentru identificatori. Domeniul de accesibilitate este acelasi cu al variabilelor, cu exceptia faptului ca este necesara utilizarea cuvantului-cheie const, chiar si pentru constantele globale. Daca acest cuvant lipseste, se presupune ca a fost utilizat cuvantul-cheie var. Nu pot fi declarate o constanta si o functie, respectiv o variabila si o constanta cu acelasi nume si acelasi domeniu de accesibilitate.

3 Expresii si operatori

Expresii O expresie este un set valid de variabile, elemente literale si operatori. Ca rezultat al evaluarii unei expresii se obtine o valoare de tip scalar. Exista doua categorii de expresii:

cele care atribuie o valoare unei variabile (ex., x = (4+5)*6

cele care au o valoare (ex.,

Operatori Operatorii utilizati in JavaScript sunt incadrati in urmatoarele categorii:

operatori de comparatie:

o       egal (

o       inegal (

o       strict egal (

o       strict inegal (

o       mai mare (>

o       mai mare sau egal (>=

o       mai mic (<

o       mai mic sau egal (<=

operatori aritmetici:

o       modul (

o       incrementare (

o       decrementare (

o       negatie (

o       operatori de atribuire.

operatori pe biti:

o       AND (x & y

o       OR (x | y

o       NOT (~x

o       deplasare la stanga (x << y

o       deplasare la dreapta (x >> y

o       deplasare la dreapta cu adaugare de zerouri (x >>> y

operatori logici:

o       AND logic (expr1 && expr2

o       OR logic (expr1 || expr2);

o       NOT logic (!expr

operatori pentru siruri:

o       operatorul conditional (conditie ? val1 : val2

o       operatorul virgula (

o       operatorul de stergere (delete

o       exista in (in

o       instanta a (instanceof

o       nou (new

o       acesta (this

o       avand tipul (typeof

o       void (void

4 Instructiuni

Intre scopurile urmarite prin introducerea instructiunilor in limbajele de programare se numara controlul programelor, reducerea cantitatii de cod utilizat si evitarea introducerii repetate a acelorasi comenzi. Limbajul JavaScript permite utilizarea urmatoarelor tipuri de instructiuni:

de tip bloc;

de control (conditionale);

de ciclare;

pentru manipularea obiectelor;

pentru lansarea, prinderea si manipularea exceptiilor.

Instructiunea bloc

Aceasta instructiune este utilizata pentru a grupa alte instructiuni. Un bloc (grup) de instructiuni este delimitat utilizand o pereche de acolade (

Instructiuni conditionale Instructiunile conditionale determina executia unei instructiuni sau a unui set de instructiuni daca este indeplinita o anumita conditie. In JavaScript sunt utilizate doua tipuri de instructiuni conditionale: if si switch Instructiunea if este utilizata pentru a executa un grup de instructiuni atunci cand o conditie logica ia valoarea true. Clauza else este optionala, determinand,    in situatia in care conditia logica ia valoarea false, executia altui grup de instructiuni:

if (conditie)

[else ] Instructiunea switch permite unui program sa evalueze o expresie si sa incerce sa potriveasca valoarea expresiei la o eticheta (label). Daca se realizeaza potrivirea, programul executa instructiunile asociate etichetei.

switch (expresie) Daca nu este gasita nicio potrivire, printre etichetele eticheta1 eticheta2 , pentru expresia expresie, programul cauta declaratia default si executa instructiunile asociate acesteia.

Instructiuni de ciclare Instructiunile de ciclare determina executia repetata a unui set de instructiuni, atat timp cat este indeplinita o conditie specificata. In grupul lor sunt incluse for while dowhile break label si continue. Desi break si label nu sunt propriu-zis instructiuni de ciclare, ele sunt frecvent utilizate impreuna cu acest tip de instructiuni. Din acest motiv le vom include in acelasi grup. Instructiunea for este utilizata pentru realizarea unui ciclu intr-un script. Instructiunile incluse in ciclu sunt executate repetitiv, pana cand o expresie specificata este evaluata la valoarea false. Sintaxa utilizata pentru aceasta instructiune este urmatoarea:   

for ([expresieInitializare]; [conditie]; [expresie]) Instructiunea while este similara cu instructiunea for, dar nu include in declaratia ei expresiile de initializare si de modificare a valorii contorului. Sintaxa acestei instructiuni este urmatoarea:

While (conditie) Instructiunea dowhile se executa similar cu instructiunea while, cu exceptia faptului ca expresia conditionala se verifica dupa iteratie si nu inaintea acesteia. Rezulta ca, in mod obligatoriu, grupul de instructiuni grup    va fi executat cel putin o data, spre deosebire de instructiunea while, in cazul careia este posibil ca grupul de instructiuni sa nu fie executat niciodata. Sintaxa este urmatoarea:   

do while (conditie) Instructiunea break intrerupe definitiv executia unui ciclu for while dowhile sau a unei instructiuni switch, transferand controlul instructiunii urmatoare incluse in script. Instructiunea continue, spre deosebire de break, sare peste instructiunile urmatoare ramase eventual in ciclul for while sau dowhile si evalueaza expresia conditionala.    Instructiunea label poate fi plasata inaintea oricarei instructiuni care poate imbrica alte instructiuni, ceea ce ofera posibilitatea iesirii dintr-o instructiune conditionala sau dintr-un ciclu.   

Instructiuni pentru lansarea, prinderea si manipularea exceptiilor Instructiunea throw este utilizata pentru a initia (lansa) o exceptie. Cand se lanseaza o exceptie, trebuie specificata o valoare pentru aceasta. Instructiunea trycatch este alcatuita dintr-un bloc try in care trebuie incluse instructiunile care se doresc a fi monitorizate in vederea depistarii unei posibile exceptii si zero, unul sau mai multe blocuri catch, in care sunt incluse instructiuni care precizeaza ce trebuie facut atunci cand o anumita exceptie apare in blocul try

5 Functii

O functie reprezinta o secventa de cod, scrisa intr-un limbaj de programare, care realizeaza o anumita operatie si care poate fi apelata in mod repetat. Se poate spune ca o functie reprezinta un set de instructiuni care realizeaza o sarcina specifica. Desi o functie trebuie implementata o singura data, ea poate fi apelata de cate ori este necesar. Din punctul de vedere al modalitatilor de definire, functiile sunt de doua feluri:

functii definite de utilizator;

functii predefinite.

Functii definite de utilizator

Definitia unei functii JavaScript consta din cuvantul-cheie function, urmat de numele functiei, o lista de argumente inclusa intre paranteze rotunde si separate prin operatorul virgula si un bloc de instructiuni (corpul functiei) inclus intre acolade. Sintaxa utilizata pentru declararea unei functii este urmatoarea:

Function numeFunctie([arg1][,argN]) Functiile pot intoarce sau nu valori. Pentru a specifica valoarea intoarsa de o functie se utilizeaza cuvantul-cheie return Definirea unei functii nu presupune executia acesteia. Pentru a fi executata, o functie trebuie apelata. O categorie importanta de functii este reprezentata de functiile recursive. O astfel de functie se apeleaza pe ea insasi.

Functii predefinite Limbajul JavaScript include functii predefinite de nivel inalt, care nu sunt asociate vreunui obiect. Aceste functii sunt: eval(), isFinite(), isNaN(), parseInt(), parseFloat(), Number(), String(), encodeURI(), decodeURI(), encodeURIComponent() si decodeURIComponent(). Functia eval() evalueaza un sir care reprezinta o portiune de cod JavaScript. Sintaxa utilizata pentru apelul functiei este eval(sir) Functia isFinite()evalueaza un argument pentru a determina daca este un numar finit. Sintaxa utilizata pentru apelul functiei este isFinite(numar) Functia isNaN()evalueaza argumentul primit pentru a stabili daca este "NaN" . Sintaxa utilizata pentru apelul functiei este isNaN(valoareTest) Functia parseFloat()proceseaza argumentul transmis ca un sir si intoarce un numar real. Sintaxa utilizata pentru apelul functiei este parseFloat(sir). Functia parseInt()proceseaza primul argument transmis (obligatoriu) si intoarce un intreg in baza specificata ca al doilea argument (optional). Sintaxa utilizata pentru apelul functiei este parseInt(sir [, baza]) Functia Number()converteste un obiect intr-un numar. Sintaxa utilizata pentru apelul functiei este Number(refObiect) Functia String()converteste un obiect intr-un sir. Functia encodeURI() codifica un URI, inlocuind fiecare aparitie a unor caractere cu una, doua sau trei secvente escape reprezentand codificarea UTF-8 a caracterului respectiv.Sintaxa utilizata pentru apelul functiei este encodeURI(URI) Functia decodeURI() decodifica un URI codificat anterior cu functia encodeURI(). Sintaxa utilizata este decodeURI(uriCodificat) Functia encodeURIComponent()codifica o componenta a unui URI, folosind o modalitate similara cu cea utilizata de functia encodeURI(). Sintaxa utilizata pentru apelul functiei este encodeURIComponent(sir) Functia decodeURIComponent() decodifica o componenta a unui URI, codificata anterior cu encodeURIComponent(). Sintaxa utilizata pentru apelul functiei este decodeURIComponent(uriCodificat)



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1228
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved