Scrigroup - Documente si articole

     

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


Introducere in lumea JavaScript

java



+ Font mai mare | - Font mai mic



  1. Introducere in lumea JavaScript

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 :

  1. browsere
  2. HTML
  3. extensii pe partea de client ( appleturi Java , controale ActiveX sau module plug-in )
  4. limbajul de scriptare ( JavaScript , VBScript sau altul )

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> .

  1. Limbajul JavaScript

Pentru a realiza si utiliza aplicatii JS avem nevoie de cateva unelte principale :

  1. un editor JavaScript pentru scrierea codului
  2. un editor HTML pentru dezvoltarea paginilor web
  3. un browser web pentru a testa scripturile
  4. un program de depanare a scripturilor

  1. Pentru editarea de cod sursa JS putem folosi orice editor de texte . Intre cele mai comode si usor de utilizat utilitare pentru acest scop amintim :

-          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 .

  1. Aceasta problematica a fost tratata in prima parte a lucrarii

  1. Regula de baza este testarea scriptului folosind toate tipurile posibile de browsere ce vor accesa pagina . Modalitatea cea mai buna de a determina care browsere ne acceseaza siteul este analiza jurmalelor de web . Orice browser expediaza un sir utilizator-agent pe care il putem folosi pentru a determina browserele si sistemele de operare ale utilizatorilor .

  1. In acest moment principalele doua programe pentru depanarea scripturilor provin de la Netscape si Microsoft ( surprinzator nu ?! ) . In practica este recomandata folosirea amandorura pentru a depana scripturi atat in Navigator cat si in Internet Explorer .

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 :

  1. Numar intreg

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 .

  1. Virgula mobila

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

  1. Valori booleene

JS accepta literalele 'true' si 'false' pentru valorile booleene 1 si 0 . Acesti termeni trebuie sa apara scrisi cu litere minuscule .

  1. Sir

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

  1. Caractere speciale

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 .

  1. Variabile locale

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 .

  1. Variabile globale

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 constanta este o variabila care pastreaza aceeasi valoare pe toata durata executarii unui program . JS foloseste constante incorporate pentru a reprezenta valori folosite in matematica , ca de exemplu pi . Acestea pot fi accesate cu ajutorul obiectului 'math' .

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1046
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