Simpatie.ro - matrimoniale
Informatica
Programare - Software - Web Design
Nou pe simpatie:
Profil Laura_libero
Femeie
24 ani
Timis
cauta Barbat
32 - 50 ani
InformaticaInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
Informatica / Despre limbajele de programare /

Fise de lucru JavaScrip - js4

Pagini: 1  
#1
Admin
Administrator
Postari: 315

Functii

O functie este un bloc de cod care va fi executat ori de cate ori acea functie va fi apelata.

Functiile pot fi definite oriunde in document atat in head cat si in body. Dar pentru a fi siguri ca functia se incarca inainte de a fi apelata e mai bine sa fie scrisa in head. Nu va asteptati ca functia sa se execute doar daca o declarati. Trebuie apelata in mod explicit fie la un eveniment (onclick, nomouseover etc) fie in cadrul unui script.
O alta modalitate de a declara functii este prin realizarea de fisiere externe cu extensia .js care sa contina functiile. Incarcarea unui fisier se realizeaza folosind cuvantul cheie script dar se specifica si sursa, fisierul cu extensia .js :
<head>
<script src="fis.js"></script>
</head>

<html><head>
<script type="text/javascript">
function displaymessage()
{
alert("Hello World!";
}
</script>
</head>

<body>
<form>
<input>
</form>

</body></html>

Daca linia: alert("Hello world"; din exemplul de mai sus nu ar fi fost scrisa in functie, ar fi fost executata in momentul in care acea linie era incarcata de browser. Insa acum scriptul nu e executat inainte ca utilizatorul sa dea clic pe buton. Evenimentul onClick a fost atasat butonului pentru a executa functia displaymessage() atunci cand butonul este apasat(clicked).

Definirea unei functii

Sintaxa de definirea a unei functii este:

function numefunctie(var1,var2,...,varX)
{
cod de executat
}

unde var1, var2 ... sunt variabile transmise functiei iar { si } sunt acoladele de inceput si sfarsit.

Chiar daca o functie nu are parametri, tot trebuie folosite parantezele rotunde la declarare:

function numefunctie()
{
cod de executat
}

Iata un exemplu de functie care primeste un parametru:

<html><head>

<script type="text/javascript">
function myfunction(txt)
{
alert(txt);
}
</script>

</head><body>

<form>
<input>
</form>

<p>Prin apasarea butonului va fi apelata functia cu parametru. In acest caz parametrul 'Hello' va fi afisat </p>

</body>
</html>

Se observa variabila txt, doar ca fiind folosita intre parantezele functiei la declarare poarta numele de parametru (sau argument in engleza). El este de fapt o poarta de intrare pentru date catre interiorul functiei.
In cazul apelului myfunction('Hello') parametrul txt va primi valoarea 'Hello'. Practic se realizeaza o atribuire txt='Hello'. In acest mod implicit de atribuire valoarea 'Hello' este introdusa in interiorul functiei prin parametrul txt si folosita ori de cate ori e nevoie.


Instructiunea return

Instructiunea return este folosita pentru a transmite in afara functiei o valoare care de obicei reprezinta rezultatul procesarii parametrilor de intrare. Daca pentru intrare putem avea oricati parametri, la iesire putem avea doar o singura valoare transmisa cu ajutorul lui return.
Exemplu: Urmatoarea functie returneaza produsul a doua numere a si b:
function prod(a,b)
{
x=a*b;
return x;
}

Functia primeste ca parametri doua valori memorate de parametrii a si b si returneaza valoarea sumei lor memorate de x.
Iata cum este apelata:
produs=prod(2,6);
variabila produs va memora rezultatul returnat de prod(2,6).
Inca un lucru de stiut:

Parametri formali si parametri efectivi

In limbajul programatorilor parametrii a si b din functia prod se numesc parametri formali. De ce? Pentru ca nu sunt decat niste recipiente pentru orice fel de valori sunt transmise in momentul apelului. De exemplu a si b vor lua pe rand valorile 2,6 apoi 4,5 apoi 8,2 in urma apelurilor
<script>
document.write(prod(2,6));
document.write(prod(4,5));
document.write(prod(8,2));
</script>
cu alte cuvinte a si b tin locul oricaror valori reale ce le sunt transmise si operatiile executate asupra lor vor fi aplicate ori de cate ori se realizeaza apelul functiei.

Dar daca avem situatia
c=2;
d=6;
document.write(prod(c,d));

Observati ca de data aceasta nu mai avem valori concrete ci parametrilor formali a si b li se transmit valorile continute de variabilele c si d.
Practic in momentul apelului functiei are loc: a=c si b=d si apoi functia este apelata cu valorile lui c si d acum detinute de a si b.

De data aceasta vom numi variabilele introduse ca parametri in cadrul apelului functiei - prod(c,d) - parametri efectivi pentru ca ei sunt cei care detin valorile efective cu care vor lucra parametrii formali a si b.

Pe scurt daca o functie este declarata

function prod (a,b)
{...}
a si b sunt parametri formali

Iar daca este apelata undeva in pagina

c=3;d=5;
produs=prod(c,d);
c si d sunt parametri efectivi

Domeniul de vizibilitate a variabilelor


Cand declarati o variabila in cadrul unei functii (chiar si ca parametru formal in interiorul parantezelor rotunde), aceasta este vizibila (accesibila sau existenta) doar in cadrul acelei functii. Altfel spus dupa executia acelei functii variabila este distrusa. Pot exista variabile cu acelasi nume in functii diferite deoarece ele sunt recunoscute ca variabile diferite. Astfel de variabile se numesc variabile locale.
Daca doriti ca o varibila sa fie accesata de mai multe functii, aceasta trebuie declarata in afara lor. Astfel toate functiile pentru care variabila este declarata in exteriorul lor pot accesa acea variabila. O astfel de variabila se numeste globala si durata ei de viata este atat timp cat pagina in care este declarata este deschisa. In momentul in care pagina este inchisa dispare si variabila globala.
Pe scurt daca avem:
<script>
var a=6;

function functie1()
{
var aux=5;
............
}

function functie2
{
var nr=8;
..........
}
</script>
- a este variabila globala pentru ca e declarata in exteriorul functiilor fiind vizibila din ambele
- aux si nr sunt variabile locale pentru ca sunt declarate in interiorul functiilor astfel aux nu este vizibila din functie2 iar nr nu este vizibila din functie1.


 
   
Pagini: 1  
Mergi la