CATEGORII DOCUMENTE |
1.1 Notiuni generale
Initial limbajul JavaScript a fost dezvoltat de Netscape sub denumirea LiveScript , un limbaj de scriptare care intentiona sa extinda capacitatile HTML si sa ofere o alternativa partiala la utilizarea unui numar mare de scripturi CGI pentru prelucrarea informatiilor din formulare si pentru a adauga dinamism in paginile web . Dupa lansarea limbajului Java , Netscape a inceput sa lucreze impreuna cu firma Sun pentru a oferi un limbaj de scriptare a carui sintaxa si semantica erau strans legate de Java - motiv pentru care denumirea a fost schimbata in JavaScript . Dupa finalizarea limbajului firmele Netscape si Java l-au lansat impreuna .
Una dintre motivatiile care au stat la baza limbajului JavaScript a fost recunoasterea necesitatii ca logica si inteligenta sa existe si pe partea de client , nu doar pe partea de server . Daca toata logica este pe partea de server intreaga prelucrare este dirijata la server , chiar si pentru sarcini simple , asa cum este validarea datelor . In fapt , lipsit de suport logic pe partea de utilizator , mediul web ar intra intr-o arhitectura demodata , inlocuita inca din anii '80 . Asigurarea de logica in interiorul browserului il inzestreaza pe client si face ca relatia sa fie un adevarat sistem client-server .
De la lansarea sa , in decembrie 1995 , JavaScript si-a atras sprijin din partea principalilor distribuitori din domeniu , ca Apple , Borland , Informix , Oracle , Sybase , HP sau IBM . A continuat sa se dezvolte , obtinand recunoastere nu numai in majoritatea browserelor actuale ci si in alte aplicatii pe care le-au lansat aceste companii .
Situatia s-a complicat putin atunci cand Microsoft a intervenit . Intelegand importanta scriptarii web , Microsoft a dorit sa ofere suport si pentru JavaScript . Cand Netscape a preferat sa acorde licenta de tehnologie companieie Microsoft in loc sa o vanda Redmond a analizat JavaSript , bazandu-se pe documentatia publica si a creat propria sa implementare , Jscript , care este recunoscuta de Microsoft Internet Explorer . Jscript 1.0 este aproximativ compatibil cu JavaScript 1.1 , care este recunoscut de Netscape Navigator . Totusi , numeroasele versiuni JavaScript si diversele diferente specifice platformelor de operare le-au dat destule dureri de cap programatorilor pentru web .
Din fericire problema s-a reglementat ( aproape definitiv ! ) cand Netscape si Microsoft precum si alti distribuitori au fost de acord sa predea limbajul unei organizatii internationale de standardizare - ECMA ; aceasta a finalizat o specificatie de limbaj , cunoscuta ca ECMAScript , pe care o recunosc toti distribuitorii . Desi standardul ECMA este util , atat Netscape cat si Microsoft au propriile lor implementari ale limbajului si continua sa extinda limbajul dincolo de standardul de baza .
Pe langa Jscript , Microsoft a introdus si un concurent pentru JavaScript , numit VBScript , realizat pentru a usura patrunderea pe web a programatorilor VB . In esenta , VBScript este un subset al limbajului Visual Basic . Deoarece Netscape nu recunoaste VBScript , principalele sale utilizari sunt intraneturile sau siteurile unde se inregistreaza o majoritate clara de utilizatori Microsoft Internet Explorer .
Chiar tianad seama de VBScript , JavaScript a devenit cunoscut ca limabjul de scriptare standard pentru web . Intrucat distribuitorii produc instrumente de dezvoltare web care necesita un limbaj de scriptare , JavaScript este frecvent folosit in acest scop ; astfel , Netscape foloseste limbajul cunoscut ca Server-Side JavaScript ( SSJS ) pe partea de server . Desigur , Microsoft nu a ramas in urma si , cand a lansat tehnologia Active Serve Pages ( ASP ) , aceasta includea si recunoasterea motorului Jscript .
In general se considera ca exista zece aspecte fundamentale ale limbajului JavaScript pe care orice programator in acest limbaj ar trebui sa le cunoasca si sa le respecte :
- JavaScript poate fi inglobat in HTML - Daca ne ocupam de JavaScript pe partea de client intre acesta si HTML aproape ca nu exista deosebiri . De obicei codul JavaScript este gazduit in documentele HTML si executat in interiorul lor . Cele mai multe obiecte JavaScript au etichete HTML pe care le reprezinta , astfel incat programul este inclus la nivelul esential , pe partea de client a limbajului . JavaScript foloseste HTML ca modalitate de a intra in cadrul de lucur al aplicatiilor pentru web .
- JavaScript este dependent de mediu - JavaScript este un limbaj de scriptare ; softwareul care ruleaza de fapt programul este motorul de interpretare din mediu - Netscape Navigator , Internet Explorer , etc. Este important sa nu uitam aceasta dependenta de browser atunci cand decidem unde utilizam aplicatii JavaScript .
- JavaScript este un limbaj interpretat - codul nostru va fi interpretat de browser inainte de a fi executat . JavaScript nu este compilat in binar ci ramane parte a documentului HTML . Dezavantajul acestui tip de limbaj este c rularea dureaza mai mult deoarece browserul trebuie sa compileze de fiecare data instructiunile in timpul rularii chiar inainte sa le execute . Avantajul principal consta in faptul ca este mult mai usor sa actualizam codul sursa .
- JavaScript este un limbaj flexibil - in aceasta privinta limbajul difera radical de C++ sau Java . In JavaScript putem declara o variabila de un anumit tip dar nu suntem obligati sa o facem ; putem lucra cu o variabila desi nu-i cunoastem tipul specificat inainte de rulare .
- JavaScript este bazat pe obiecte - Netscape si altii se refera la JavaScript ca la un limbaj de programare orientat obiect - acest lucru este putin fortat - mai corect ar fi 'bazat pe obiecte' ; modelul de obiect JavaScript este bazat pe instanta si nu pe mostenire .
- JavaScript este condus de evenimente - mare parte a codului JavaScript raspunde la evenimente generate de utilizator sau de sistem . In sine , limbajul este echipat pentru a trata evenimente .
- JavaScript nu este Java - Cele doua limbaje au fost create de firme diferite iar motivul denumirilor asemanatoare este legat puternic de marketing .
- JavaScript este multifunctional - limbajul are o multime de fatete si poate fi folosit intr-o multitudine de contexte pentru a rezolva diferite probleme .
- JavaScript evolueaza - limbajul evolueaza intr-un ritm accelerat , fapt care are conotatii pozitive insa poate genera si multe probleme , progrmatorii trebuind sa se intrebe permanent ce versiune sa foloseasca pentru ca aplicatiile sa poata fi disponibile unui numar cat mai mare de utilizatori de browsere .
- JavaScript acopera diverse contexte - programarea cu acest limbaj este indreptata mai ales catre partea de client dar putem folosi fara probleme JavaScript si pentru partea de Server . Tot JavaScript este limbajul nativ pentru unele instrumente de dezvoltare web , ca Borland IntraBuilder sau Macromedia Dreamweaver . Cea mai noua aplicabilitate a scripturilor JavaScript vine dinspre sistemele de operare Windows care accepta acum , cu mediul lor WSH - Windows Script Host - implementarea de JavaScript chiar pe suprafata de lucru .
Partea de client a cadrului de lucru al aplicatiilor pentru web - elementul central al lucrarii de fata - consta din patru lucruri de baza :
Browserul este componenta de baza a unei aplicatii web , reprezentand fereastra utilizatorului catre web si servind drept interfata cu utilizatorul . La acest moment - inceputul lui 2002 - piata browserelor este acaparata aproape in intregime de doua produse : Netscape Navigator si Microsoft Internet Explorer , lucru care pentru dezvolatorii de aplicatii este de un mare ajutor , reducand problema testarii rezultatelor muncii lor pe diferite browsere .
HTML este principala tehnologie pe care se bazeaza sistemul web iar problematica sa a fost detaliata in prima parte a lucrarii .
Extensiile pe partea de client au aparut ca programe de completare a browserului , realizate de terti , pentru a-l face mai puternic . Desi browserul trebuie sa recunoasca o anumita tehnologie pentru a o folosi aceasta nu trebuie neaparat legata de el . Actualmente exista trei extensii pe partea de client care s-au impus in acest domeniu , toate prezentand unele similitudini dar avand totusi diferente majore intre ele :
- miniaplicatii Java
- controale ActiveX
- module plug-in Netscape
Miniaplicatiile Java - cunoscute ca appleturi - sunt introduse in HTML printr-o eticheta <applet> . Appletul este descarcat pe calculatorul client intr-o forma compilata iar browserul - daca este compatibil Java - interpreteaza acest cod de biti si-l executa .
Controalele ActiveX - cunoscute anterior ca OCX-uri - constituie raspunsul Microsoft la appleturile Java . Ele sunt similare appleturilor cu o diferenta majora insa : controalele ActiveX sunt limitate la mediul de operare Windows ( cel putin la momentul actual )
Modulele plug-in Netscape reprezinta o tehnologie usor diferita dar sunt tot o extensie pe partea de client a browserului . In esenta un astfel de modul extinde capacitatile normale ale browserului Netscape navigator oferind suport pentru tipuri de date suplimentare si pentru alte caracteristici .
Partea de server a cadrului de lucru al aplicatiilor pentru web consta in doua elemente :
- servere
- extensii pe partea de server
Serverul web raspunde de tratarea cererilor pentru documentele HTML de la clienti si returnarea lor pentru vizualizare . Intre cele mai folosite servere la acest moment gasim Netscape Enterprise Server ( NES ) , Microsoft Internet Information Server ( IIS ) si Apache .
Extensiile pe partea de server asigura capacitati pe care serverul in sine nu le recunoaste , cum ar fi CGI , API pentru servere , JavaScript sau Java .
CGI - Common Gateway Interface - este actuala modalitate standard de stabilire a interfetei intre programe externe si servere web . Folosind CGI putem executa pe server programe sau scripturi CGI pentru a genera continut creat dinamic care sa fie afisat utilizatorului
Pentru a scrie un program CGI putem folosi orice limbaj de programare - Java , Perl , C++ , PHP sau Visual Basic - atat timp cat acesta poate fi rulat pe serverul web .
API pentru servere - interfata nativa pentru programele de aplicatie - reprezinta o alta modalitate de integrare cu serverul . Folosirea API duce la o integrare mai stransa cu serverul - in Windows de exemplu es va crea un fisier .DLL care este accesat de server . Avantajul folosirii de interfete API pentru servere este eficienta mai mare decat in cazul programelor CGI - acestea necesitand ca o instanta separata a programului sa fie executata pentru fiecare cerere sau inaintare a clientului . Dezavantajul folosirii unui API particular pentru server este tocmai specificitatea unica acelui server . Fisierul nostru .DLL pentru un API ca ISAPI de exemplu ( Microsoft Internet Server API = ISAPI ) nu va functiona cu un server Netscape .
JavaScript poate fi folosit - dupa cum am mai spus - si pentru partea de server . Mediul Netscape Server-Side JavaScript ne permite sa folosim scripturi ca sa construim aplicatii web controlate de serverul Netscape . In plus , Microsoft recunoaste Jscript in cadrul sau de lucru Active Server Pages .
Java pe partea de server a cunoscut o dezvoltare exploziva in ultimul timp datorita tehnologiei JSP ( Java Serve Pages ) lansata de firma Sun . Acesta tehnologie ameninta puternic concurenta reprezentata de SSJS sau ASP .
In plus exista si aplicatiile numite Java Servlets ; acestea sunt componente asemanatoare controalelor AciveX din mediul ASP , care sunt apelate pe masura ce paginile sunt construite sau pentru a construi pagini . Aceasta permite programatorilor sa aplice Java pentru a construi componente rapide si fiabile , independente de platforma .
1.2 Conlucrarea JavaScript - HTML
HTML ofera capacitatea de a crea remarcabile pagini web statice . JavaScript ofera capacitatea de a face ca paginile statice sa devina interactive si mai prompte fata de actiunille utilizatorilor si de intrarile acestora .
JavaScript ofera avantaje fata de documentele interactive bazate pe server , cum ar fi CGI , deoarece - in general - documentele bazate pe JS nu sunt dependente de prelucrarea pe partea de server , astfel ca pot raspunde mai rapid la interactiunile si cererile utilizatorului .
Pentru a intelege felul in care JS functioneaza in interiorul universului HTML va trebui sa revedeti eventual prima parte a lucrarii .
Scripturile JS sunt integrate in HTML printr-o eticheta <script> . Intr-un document HTML pot exista mai multe etichete <script> si fiecare dintre ele poate incadra mai multe seturi de instructiuni . Atributul 'type' al etichetei este folosit pentru a specifica limbajul in care este scris scriptul iar atributul 'src' este folosit pentru a specifica numele fisierelor sursa JS externe .
Eticheta <script> poate avea diferite atribute , grupate in cele ce urmeaza :
Atribut |
Descriere |
defer |
Folosit pentru a anunta browserul daca scriptul din aceasta sectiune genereaza un continut |
language |
Atribut depreciat , utilizat anterior pentru a specifica limbajul si versiunea folosite intre etichete |
src |
Specifica locatia URL a unui fisier JS sursa externa |
type |
A inlocuit atributul 'language' si anunta browserul ce limbaj se va folosi intre etichete |
Atunci cand folosim JS in documentul HTML avem doua optiuni : sa introducem instructiunile JS direct in fisierul HTML intre etichetele <script> si </script> , acest stil se numeste in-line scripting ; a doua optiune este disponibila doar incepand cu versiunea JavaScript 1.1 si se refera la introducerea instructiunilor JS intr-un fisier separat , cu extensia JS , ceea ce permite apelarea fisierului din interiorul documentului HTML , in prima linie a etichetei <script> .
In continuare avem doua exemple ale celor doua stiluri de utilizare ale JS , mai intai stilul in-line si apoi apelarea unui fisier extern :
<script type='text/javascript'>
functions options()
</script>
<script src='/jscripts/ScriptulMeu.js'></script>
In cazul in care incarcam scriptul nostru dintr-un alt fisier atributul 'language' nu este necesar atata vreme cat folosim extensia .JS . Folosirea acestui mod de a utiliza JavaScript este extrem de populara datorita modularitatii si portabilitatii superioare oferite .
Exista si un neajuns destul de important al acestei folosiri a JS - intr-un fisier extern .JS nu putem folosi etichete HTML ci doar instructiuni JavaScript .
Atributul 'type' - inlocuitorul lui 'language' - poate lua valori predefinite pentru tipul de script folosit :
- pentru JavaScript sintaxa este : type='text/javascript'
- pentru VBScript sintaxa este : type='text/vbscript'
Recomandarea HTML 4.01 specifica introducerea unei etichete <meta> in portiunea <head> a documentelor , care specifica limbajul prestabilit folosit in toate scripturile . Eticheta ar trebui sa arate astfel :
<meta http.equiv='Content-Script-Type' content='text/javascript'>
Elementele ce stau la baza crearii programelor JS sunt simple . Cream o pagina HTML sau editam una existenta apoi inseram etichete <script> in sectiunea <head> sau <body> a documentului . Este preferabil ca funstiile si alte elemente ce ar trebui sa fie aplicate intregii pagini sa fie continute in sectiunea <head> a documentului . Daca trebuie sa generam text pentru pagina folosind JS il vom genera in interiorul sectiunii <body> .
Pentru a realiza si utiliza aplicatii JS avem nevoie de cateva unelte principale :
- Notepad ( pentru Windows )
- TextPad ( pentru Windows )
- emacs ( pentru UNIX )
- vi ( pentru UNIX )
- SimpleText ( pentru Macintosh )
- BBEdit ( pentru Macintosh )
In afara editoarelor de text exista si unele editoare dedicate specific dezvoltarii aplicatiilor JS . Aceste aplicatii ofera unele caracteristici functionale deloc de neglijat : editare de text prin drag& drop , evidentierea sintaxei pentru cuvintele cheie si pentru etichetele HTML , functii de cautare si inlocuire , integrarea cu multe browsere pentru testare si depanare , etc .
Intre programele de acest tip amintesc NetObjects ScriptBuilder sau Netscape Application Builder .
Procesul de programare in JavaScript are o diagrama logica foarte simpla si clara : crearea unei pagini HTML , adaugarea de cod JS si testarea rezultatelor in browsere .
Editor HTML Creaza
pagina web
PROGRAMARE
Browser web Ruleaza
pagina HTML Editor JavaScript Adauga
cod JavaScript
TESTARE/DEPANARE
Figura 1.
2.1 Elemente fundamentale
Primul lucru care trebuie mentionat - si retinut ! - este faptul ca JavaScript este un limbaj case-sensitive , adica face o diferentiere intre majuscule si minuscule . De exemplu o variabila 'popescu' este diferita de o alta numita 'Popescu' .
Tokenuri - acestea sunt cele mai mici cuvinte , expresii sau caractere individuale pe care le poate intelege JavaScript . Cand JS este interpretat , browserul analizeaza scriptul , identificand tokenurile si ignorand comentariile si spatiile albe .
Tokenurile JS se clasifica in patru categorii : identificatori , cuvinte cheie , elemente literale si operatori .
Ca in cazul tuturor limbajelor dispunem de mai multe modalitati de a aranja aceste tokenuri ca sa instruim un calculator sa execute o functioe specifica . Sintaza unui limbaj este setul de reguli si restrictii privind modalitatea in care putem combina tokenurile .
Expresiile reprezinta seturi de instructiuni care , in grup , sunt evaluate la o valoare unica . Aceasta valoare rezultata este dupa aceea clasificata de JS ca unul dintre tipurile de date : boolean , number , string , function , object ( detaliate putin mai tarziu ) .
O expresie poate fi foarte simpla - un numar sau o variabila - sau poate grupa mai multe variabile , cuvinte cheie si operatori .
IDENTIFICATORI
Acestia sunt pur si simplu nume care reprezinta variabile , metode sau obiecte . Ei constau dintr-o combinatie de literale si cifre . unele nume sunt deja incorporate in limbajul JS si , ca urmare sunt rezervate .
Pe langa aceste cuvinte cheie putem defini proprii nostri identificatori respectand cateva reguli :
- identificatorii trebuie sa inceapa cu o litera sau liniuta de subliniere '_'
- pentru caracterele care urmeaza primului putem folosi litere , cifre sau '_'
- literele majuscule si minuscule sunt de la 'a' la 'Z'
- un identificator nu trebuie sa includa in numele sau spatii
CUVINTE CHEIE SI CUVINTE REZEVATE
Cuvintele cheie sunt identificatori predefiniti care formeaza nucleul limbajului . Acestea sunt incorporate in limbaj si sunt totdeauna disponibile pentru utilizare , cu respectarea sintaxei lor corecte .
Cuvintele rezervate sunt identificatori pe care nu-i putem folosi ca nume de variabile , functii , obiecte sau metode . Ele includ cuvintele cheie si identificatorii care sunt pastrati pentru o posibila utilizare viitoare .
Tabelul de mai jos cuprinde toate cuvintele rezervate pentru JavaScript :
Abstract |
do |
goto |
package |
throws |
boolean |
double |
if |
private |
transient |
break |
else |
implements |
protected |
true |
byte |
enum |
import |
public |
try |
case |
export |
in |
return |
typeof |
catch |
extends |
instanceof |
short |
var |
char |
false |
int |
static |
void |
class |
final |
interface |
super |
volatile |
const |
finally |
long |
switch |
while |
continue |
float |
native |
synchronized |
with |
debugger |
for |
new |
this |
|
default |
function |
null |
throw |
|
ELEMENTE LITERALE
Acestea sunt siruri sau numere folosite pentru a reprezenta valori fixe in JavaScript . Ele sunt valori care nu se modifica in timp ce se executa scripturile . Exista mai multe tipuri de literale folosite in JS :
Pot fi exprimate zecimal , octal sau hexazecimal . Un literal zecimal poate contine orice cifra ; un zero in fata unui element literal desemneaza formatul octal iar folosirea elementului 0X ( sau 0x ) in fata unui numar duce la tratarea sa ca numar hexazecimal .
Aceste elemente reprezinta numere zecimale fractionare . Ele pot fi exprimate standard sau exponential . Reprezentarea exponentiala foloseste 'e' sau 'E' pentru a desemna exponentul . Atat numarul cat si exponentul pot fi pozitive sau negative :
1234.567
-12.45
1234e-11
450e10
5.5E-12
JS accepta literalele 'true' si 'false' pentru valorile booleene 1 si 0 . Acesti termeni trebuie sa apara scrisi cu litere minuscule .
Un literal de tip sir este format din zero sau mai multe caractere incadrate intre ghilimele sau apostrofuri ( dar la ambele extremitati ale literalului trebuie folosit acelasi semn ) :
'masina mea' --> CORECT
'lectia numarul unu' --> CORECT
'lectia numarul doi' --> INCORECT
Cand scriem scripturi apare necesitatea de a-i spune calculatorului sa foloseasca un caracter special sau o apasare de tasta , cum ar fi tasta TAB , sau o linie noua . Pentru aceasta folosim caracterul backslash '' in fata unuia din codurile Escape , ca in exemplele de mai jos :
b |
backspace |
f |
indica o pagina noua |
n |
indica o linie noua |
r |
indica un retur de car |
t |
indica o apasare a tastei TAB |
|
indica un caracter backslash |
' |
indica un apostrof |
' |
indica ghilimelele |
OPERATORI
Acestia reprezinta simboluri sau identificatori care reprezinta o modalitate in care poate fi evaluata sau manipulata o combinatie de expresii . Operatorul cel mai obisnuit pe care il utilizam este cel de atribuire . In expresia 'x=10' , atat 10 in sine cat si variabila x sunt expresii . Cand JS intalneste un operator de atribuire intre doua expresii actioneaza conform regulilor operatorului ; se ia valoarea expresiei din dreapta si o atribuie variabilei din partea stanga .
VARIABILE
O variabila este numele dat unei locatii de memorie unde sunt stocate datele .
Atribuirea numelui unei variabile trebuie facuta in conformitate cu regulile de creare a identificatorilor in general .
Desi nu exista o regula obligatorie de denumire a variabilelor este bine sa folosim urmatoarele reguli general acceptate :
- la folosirea unui nume dintr-un singur cuvant se folosesc caractere minuscule
- la folosirea mai multor cuvinte pentru numele unei variabile se intrebuinteaza litere mici pentru primul cuvant si initiala cu litera mare pentru fiecare alt cuvant
Pentru a anunta JS ca vom folosi un identificator ca variabila trebuie intai sa declaram variabila . Aceasta declarare a vaariabilelor se face cu cuvantul cheie 'var' . Exista posibilitatea declararii simultane a mai multor variabile :
var adresaInternet;
var n;
var i , j , k;
Dupa ce o variabila este declarata ea poate primi o valoare . Acest fapt se numeste initializare si se realizeaza prin operatorul de atribuire '=' .O variabila poate fi initializata chiar la declarare sau oriunde in cadrul scriptului :
var adresaInternet=name@company.ro;
var n=0.0;
var i=1 , j=5 , k;
k=7;
Citirea unei valori dintr-o variabila inainte de initializarea ei determina eroare in executia programului . JavaScript ne permite sa verificam daca unei variabile i s-a dat o valoare folosind un operator numit 'typeof' - pe care il vom intalni mai tarziu in cadrul unui capitol dedicat operatorilor .
JS ofera si posibilitatea initializarii directe a variabilei , fara a o declara in prealabil , acest proces trecand in seama limbajului .
TIPURI DE DATE
Atunci cand stocam o valoare - sau data - JavaScript o clasifica automat intr-unul din celel cinci tipuri de date specifice limbajului :
TIP |
EXEMPLU |
number |
-19 , 5 , 10.2 |
boolean |
true , false |
string |
'Text ' , '' |
function |
unescape , write |
object |
window , document , null |
Variabilele de tip 'function' sunt fie definite de utilizator fie incorporate . De exemplu 'unescape' este incorporata in limbaj .
Functiile care apartin obiectelor , numite metode , sunt clasificate tot in tipul de date function . Obiectele JS esentiale pe partea de client apartin tipului de date 'object' . Initializarea unei variabile obiect - sau mai scurt a unui obiect - cu 'null' constituie o buna metoda de prevenire a erorilor in cazul in care nu suntem siguri ca variabila va fi sau nu folosita .
In general limbajele de programare cer definirea tipului de date pe care il va reprezenta o variabila noua si valorile atribuite ei trebuie sa fie de acest tip . JS este mult mai flexibil , necerand definirea unui tip de date pentru variabila ; variabilele JS pot accepta oricand un nou tip de date , ca in exemplele de mai jos :
var lungimeChar;
lungimeChar=4+5;
document.write(lungimeChar);
lungimeChar='10 centimetri';
DOMENIUL DE VIZIBILITATE
Acest concept se refera la zona din program care poate referi variabila . De exemplu , la inglobarea unui script in cadrul sectiunii <head> si folosirea unui alt script in documentul HTML , JS considera ca o variabila declarata in aceste locuri ca fiind globala si astfel orice script din document o va putea folosi .
O astfel de variabila este declarata in cadrul unei functii . Numai functia respectiva are acces la variabila ; aceasta este creata de fiecare data cand functia este apelata . O alta functie care declara o variabila cu acelasi nume poate fi folosita , JS tratand cele doua variabile ca fiind diferite .
Daca vrem ca mai multe functii sa partajeze o variabila aceasta trebuie declarata in afara oricarei functii . Cu aceasta metoda toate partile aplicatiei noastre pot utiliza variabila .
CONSTANTE
O
Constantele definite de utilizator sunt variabile pe care acesta le defineste si ale caror valori nu se pot modifica . De obicei , constantele sunt reprezentate prin cuvinte care incep cu litera mare si sunt definite la inceputul programului
JavaScript nu recunoaste constantele in modul traditional . De obicei , un limbaj care recunoaste constante definite de utilizator se asigura ca nici o parte a programului nu poate modifica valoarea ei . Tentativa de modificare determina o eroare . JS nu va efectua insa aceasta verificare .
Chiar daca nu exista o modalitate prin care sa determinam JS sa se asigure ca o variabila nu este modificata , putem folosi variabile care sa aiba valori ce sunt folosite in mod repetat intr-un script . Inlocuind instantele multiple ale unei valori obisnuite cu o variabila usuram actualizarea ulterioara a scriptului - orice modificare se va face doar asupra initializarii variabilei .
COMENTARII
Exista doua metode ( folosite si de C/C++ si Java ) pentru a introduce comentarii in scriptul nostru .
Pentru a insera o linie drept comentariu folosim sintaxa :
// comentariu pana la capatul liniei
Pentru blocuri mai mari de comentarii , pe mai multe linii , putem folosi sintaxa :
/* comentarii
pe mai multe linii */
FUNCTII
In forma ei ce mai simpla o functie este un script pe care il putem apela oricand prin numele sau . Cand un document HTML este citit de browser acesta va gasi orice scripturi inglobate si le va executa pas cu pas . In cazul in care preferam ca o parte sau tot programul sa astepte inainte de a fi executat trebuie sa scriem aceasta parte de program intr-o functie si sa-i dam un nume .
Cand are loc un anumit eveniment specific putem rula scriptul folosind numele pe care l-am dat functiei . Alt avantaj al functiilor il constituie capacitatea de refolosire a scripturilor fara sa scriem in mod repetat aceleasi linii de cod .
In principiu se recomanda scrierea functiilor in sectiunea <head> a documentului HTML pentru a ne asigura ca functia este incarcata inainte de a fi executata .
CULORI
JS accepta culorile care sunt folosite la construirea paginilor web . Pentru a specifica o culoare in aplicatia noastra , de exemplu culoarea unui font , alegem dintr-o lista de optiuni posibile . Aceste valori sunt elemente literale de tip sir pe care le putem atribui unor proprietati specifice obiectelor .
Exista si posibilitea utilizarii culorilor nu doar cu numele lor ci si prin echivalentul lor hexazecimal . Acest sir hexazecimal reprezinta o combinatie a valorilor RGB utilizate pentru formarea oricarei culori . In 'Anexa 1' puteti vedea o lista completa cu culorile recunoscute de JS dupa numele lor .
2.2 Operatori
Ideea care sta la baza oricarui script este introducerea , evaluarea , manipularea sau afisarea datelor . Instrumentele necesare acestor operatiuni se numesc operatori .
Operatorii sunt simboluri si identificatori care reprezinta fie felul in care sunt modificate datele fie felul in care este evaluata o combinatie de expresii . JS recunoaste operatori binari si unari . Operatorii binari necesita existenta a doi operanzi in expresie in vreme ce operatorii unari au nevoie doar de un operand .
OPERATORI DE ATRIBUIRE
In cazul acestui operator JS actioneaza totdeauna de la dreapta la stanga ; se evalueaza operandul din dreapta iar valoarea se atribuie variabilei din stanga semnului '=' .
JavaScript recunoaste alti 11 operatori deatribuire , de fapt combinatii intre operatorul de atribuire si un operator aritmetic sau la nivel de biti :
Combinatia |
Varianta standard |
x+=y |
x=x+y |
x-=y |
x=x-y |
x*=y |
x=x*y |
x/=y |
x=x/y |
x%=y |
x=x%y |
x<<=y |
x=x<<y |
x>>=y |
x=x>>y |
x>>>=y |
x=x>>>y |
x&=y |
x=x&y |
x^=y |
x=x^y |
x|=y |
x=x|y |
OPERATORI ARITMETICI
Principalii operatori folositi alaturi de numere sunt : '+' , '-' , '*' , '/' .
O operatie obisnuita este incrementarea unei variabile , urmata de reatribuirea valorii respective variabilei insasi . Incrementarea se foloseste atat de frecvent in programe incat au aparut operatori speciali pentru incrementare si decrementare :
++i --> este similar cu i=i+1
--i --> este similar cu i=i-1
Putem folosi acesti operatori atat ca prefix cat si ca sufix . In acest fel putem modifica ordinea in care o valoare este intoarsa de expresie si momentul cand este atribuita noua valoare .
Folosirea operatorilor ca prefix duce la modificarea valorii lor in primul rand si apoi are loc atribuirea ; in cazul folosirii ca sufix a operatorului prima ca avea loc atribuirea si doar apoi variabila este incrementata sau decrementata .
Operatorul unar '-' este folosit pentru transformarea unei valori din pozitiva in negativa sau invers ( in functie de valoarea ei initiala ) .
Operatorul modulo '%' calculeaza restul impartirii primului operand la al doilea .
Exemplul de mai jos :
x=10%3
are ca efect atribuirea valorii 1 variabilei x .
OPERATORI DE COMPARATIE
Expresiile ce folosesc acesti operatori pun de fapt o intrebare despre doua valori . Raspunsul poate fi 'true' sau 'false' .
Doua semne egal '==' simbolizeaza operatorul de egalitate . Cand folosim operatoul acesta intre doi operanzi incercam sa determinam daca valorile lor sunt egale .
Operatorii de comparatie sunt prezentati in tabelul de mai jos :
OPERATOR |
DESCRIERE |
== |
testeaza egalitatea |
!= |
testeaza neegalitatea |
> |
mai mare decat |
>= |
mai mare sau egal decat |
< |
mai mic decat |
<= |
mai mic sau egal decat |
OPERATORI PENTRU SIRURI
Acesti operatori cuprind toti operatorii de comparatie si operatorul de concatenare '+' . Folosind operatorul de concatenare putem uni mai multe siruri pentru a obtine un sir mai lung , ca in exemplul de mai jos :
var a='www';
var b='company';
var c='ro';
var sumaPartilor=a+'.'+b+'.'+c;
OPERATORI CONDITIONALI
JavaScript foloseste doi operatori , '?' si ':' pentru a forma expresii conditionale . Operatorii conditionali JS executa aceeasi operatie ca si o instructiune 'if' imediata . Expresiile conditionale intorc una din doua valori , in functie de valoarea de adevar a altei expresii .
De exemplu , putem folosi urmatoarea expresie conditionala pentru a anunta utilizatorul ca este vizitatorul cu numarul 1000 al paini web :
var resultMsg=(numarHits==1000)?'Castigator':'Pierzator';
alert(resultMsg);
Daca 'numarHits' este egal cu 1000 undeva in program expresia aceasta intoarce sirul 'Castigator' , altfel intoarce 'Pierzator' . A doua linie a exemplului anterior afiseaza rezultatul folosind functia incorporata 'alert()' .
O expresie conditional poate fi folosita pentru a intoarce orice tip de date , de exemplu number sau boolean . Urmatoarea expresie intoarce fie un sir fie un numar , dupa cum numeaHits este true sau false .
var result=useString?'five':5;
document.write(result);
OPERATORI BOOLEENI
Operatorii booleeni sunt folositi in conjunctie cu expresiile care intorc valori logice . Modalitatea cea mai buna de a intelege este sa-i vedem folositi impreuna cu operatori de comparatie . Tabelul de mai jos prezinta cei trei operatori booleeni :
OPERATOR |
DESCRIERE |
&& |
Operatorul logic AND intoarce true daca atat expresie1 cat si expresie2 sunt adevarate , altfel intoarce false : (1>0) && (2>1) intoarce true (1>0) && (2<1) intoarce false |
|| |
Operatorul logic OR intoarce true daca fie expresie1 fie expresie2 sunt adevarate : (1>0) || <2<1) intoarce true (1<0) || (2<1) intoarce false |
! |
Operatorul logic NOT este unar si intoarce valoarea opusa a unei expresii : !(1>0) intoarce false !(1<0) intoarce true |
OPERATORUL typeof
Acest operator intoarce tipul de date continut la momentul respectiv de operandul sau . Este util mai cu seama pentru a determina daca o variabila a fost definita .
Exemplele de mai jos implementeaza acest operator :
typeof unescape --> intoarce sirul 'function'
typeof 33 --> intoarce sirul 'number'
typeof 'un sir' --> intoarce sirul 'string'
typeof true --> intoarce sirul 'boolean'
typeof null --> intoarce sirul 'oject'
OPERATORI PENTRU FUNCTII
Functiile vor fi detaliate mai tarziu dar in lucrul cu ele este necesar sa fim familiarizati cu doi operatori . Primul se numeste operator de apelare , este simbolizat printr-o pereche de paranteze rotunde si urmeaza totdeauna dupa numele functiei . De exemplu . o functie afisareNume() va fi declarata cu urmatoarea sintaxa :
function afisareNume()
Operatorul de apelare este folosit si cand se apeleaza functia de altundeva dintr-un script , atunci sintaxa fiind :
afisareNume()
Parantezele arata ca in locul oricarui alt identificator definit de utilizator este folosita o functie .
Al doilea operator pentru functii este virgula ',' , folosita pentru a separa argumentele multiple pe care le poate primi o functie . Argumentele sunt totdeauna incadrate de operatorul de apelare . Functia afisareNume() modificata pentru a accepta doua argumente va arata astfel :
function afisareNume( arg1 , arg2 )
OPERATORI PENTRU STRUCTURI DE DATE
Acesti operatori sunt necesari atunci cand lucram cu structuri de date . Structurile de date sunt cadre de lucru care au fost setate pentru stocarea intr-o modalitate organizata a uneia sau mai multor informatii esentiale . In JavaScript obiectele sunt folosite la gruparea informatiilor pentru a servi unui scop mult mai specific .
Un operator pe care ar trebui sa-l cunoastem bine este punctul '.' , numit operator pentru membrul unei structuri . El ne permite sa ne referim la un membru ( variabila , functie sau obiect ) care apartine obiectului specificat . Sintaxa este urmatoarea :
numeObiect.numeVariabila
sau
numeObiect.numeFunctie()
sau
numeObiect.altObiect
Modalitatea aceasta de referire la o informatie , numita notatie cu punct , intoarce valoarea variabilei , functiei sau obiectului aflat cel mai in dreapta .
Operatorul pentru membru , numit si operator indice al tabloului , se foloseste pentru a accesa o data specifica dintr-un tablou . Simbolizat printr-o pereche de paranteze drepte , el ne permite sa ne referim la orice membru al unui tablou . Tablourile sunt obiecte JavaSript si vor fi detaliate mai tarziu . Sintaxa de folosire a operatorului pentru membru este :
numeTablou[index]
Valoarea lui 'index' va fi de tipul intreg .
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1115
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved