[Tutorial JS] Lucrul cu functii in javascript

#1
Nume Tutorial: Lucrul cu functii in javascript
Descriere: Lucrul cu functii in javascript
Download:
Autor: Anonim
Sursa (Link-ul oficial):
tutorialeonline
Propria parere: Folositor.
Tutorialul:

n această lecţie vor fi prezentate trei exemple de scripturi care folosesc funcţii mai complexe decât cele prezentate în lecţia anterioară.

1. Modificarea numărului argumentelor

Când creem o funcţie îi definim şi numărul de argumente pe care le acceptă, lucru de care se ţine cont în momentul apelării ei.
Sunt situaţii în care dorim să transmitem funcţiei un număr diferit de argumente; de obicei când se apelează o funcţie care foloseşte acelaşi parametru de fiecare dată, dar este construită pentru a trata cazuri speciale.
Într-o astfel de situaţie putem folosi o valoare prestabilită în interiorul funcţiei, pentru cazul în care nu sunt transferate argumente.
În continuare va fi prezentat un script care afişează un mesaj de salut atunci când utilizatorul ajunge la o pagină web. Programul afişează un anumit mesaj dacă recunoaşte sau nu numele vizitatorului. Dacă "utilizator" nu este "null" variabila a fost definită. Acest lucru este posibil doar dacă o valoare, ca "Media", este transferată funcţiei. Dacă variabila "utilizator" este egal cu "null" atunci scriptul evită folosirea variabilei în mesajul de salut.

Cod: Selectaţi tot

<html>
 <head>
    <script type="text/javascript">
    <!--
       function mesaj(utilizator) {
          if (utilizator!=null) {
             document.writeln("Salut "+utilizator);
          }
          else {
             document.writeln("Bine ati venit pe site!"); }
          }
    //-->
    </script>
 </head>
 <body>
    <script type="text/javascript">
    <!--
       document.writeln("Prima apelare a functiei mesaj() <br />");
       mesaj("Media");
       document.writeln("<br />A doua apelare a functiei mesaj() <br />");
       mesaj();
    //-->
    </script>
 </body>
 </html> 
Acest script va afişa în pagină următorul rezultat:

Cod: Selectaţi tot

Prima apelare a functiei mesaj()
Salut Media
A doua apelare a functiei mesaj()
Bine ati venit pe site! 
Studiaţi codul funcţiei şi observaţi diferenţa mesajelor din cele două apelări.
În unele situaţii unei funcţii îi sunt transferate mai multe argumente decât au fost specificate la declararea ei. Valorile argumentelor suplimentare nu sunt pierdute, acestea se stochează într-un tablou numit "arguments" , care există implicit pentru orice funcţie.
Toate argumentele sunt păstrate în acest tablou şi pot fi extrase în interiorul corpului funcţiei.
Argumentele funcţiei "mesaj" sunt stocate în tabloul "mesaj.arguments". Stocarea se face într-o ordine asigurată de o "cheie" a cărei primă valoare este 0.
Pentru a extrage primul element din tabloul "arguments" al funcţiei "mesaj" folosim sintaxa "arg1 = mesaj.arguments[0]", pentru al doilea "arg2 = mesaj.arguments[1]".
Toate tablourile JavaScript sunt indexate pornind de la 0. Pentru a găsi numărul total de argumente din tablou putem folosi o instrucţiune specială "length" care returnează lungimea (nr. de elemente) unui tablou.
Următorul exemplu atribue variabilei "nrArg" o valoare care reprezintă numărul de argumente (elemente) din tabloul "mesaj.arguments":

nrArg = mesaj.arguments.length

Folosind instrucţiunile prezentate mai sus (legate de tabloul "arguments"), putem crea o nouă versiune a scriptului din primul exemplu. Această versiune răspunde mai corect în funcţie de cunoaşterea sau nu a numelui utilizatorilor.

Cod: Selectaţi tot

 <head>
    <script type="text/javascript">
       function mesaj(utilizator) {
          if (utilizator!=null) {
             document.writeln("Salut "+utilizator);
          }
          else {
             document.writeln("Bine ati venit pe site");
          }
          numarArgumente=mesaj.arguments.length;
          if(numarArgumente>1) {
             for (var i=1;i<numarArgumente;i++) {
                document.writeln(mesaj.arguments[i]);
             } // end for
          } // end if
       } // end function
    </script>
 </head>
 <body>
    <script type="text/javascript">
       var utilizator="Marius", extraMesaj="Bine ai revenit";
       var utilizator2=null;
       var extraMesaj1="Vrei sa devii membru ?";
       var extraMesaj2="Te poti inscrie online";
       mesaj(utilizator,extraMesaj);
       document.writeln("<hr>");
       mesaj(utilizator2,extraMesaj1,extraMesaj2);
    </script>
 </body>
 </head> 
Acest exemplu va afişa în pagina web următorul rezultat:

Cod: Selectaţi tot

Salut Marius Bine ai revenit Bine ati venit pe site Vrei sa devii membru ? Te poti inscrie online 
2. Funcţii recursive

O funcţie JavaScript poate fi recursivă, adică se poate autoapela.
O metodă bună de a demonstra capacitatea recursivă a funcţiilor este rezolvarea unei ecuaţii factoriale.
În exemplul următor avem o funcţie JavaScript recursivă care află factorialul unui număr precizat "n" (aici 7)

Cod: Selectaţi tot

 <html>
 <head>
    <script type=text/javascript>
       document.writeln("Calculeaza factorialul de 7 prin functie recursiva")
       function factorial(n) {
          var rezultat;
          if (n>0) {
             rezultat=n*factorial(n-1);
          }
          else if (n==0) {
             rezultat=1;
          }
          else {
             rezultat =null;
          }
          return(rezultat)
       }
    </script>
 </head>
 <body>
    <form>
    <input type = button value = "Factorial" onclick=alert(factorial(7)) >
    </form>
 </body>
 </html> 
Funcţia verifică întâi dacă "n" este mai mare decât 0, apoi în caz afirmativ, "n" se înmulţeşte cu rezultatul returnat de apelarea funcţiei cu argumentul "n-1". Când "n" ajunge 0, apariţia cea mai îmbricată a funcţiei se încheie şi returnează prima valoare. JavaScript încheie fiecare funcţie îmbricată până ce ajunge la apelarea iniţială a funcţiei "factorial", apoi întoarce rezultatul final.

Înapoi la “Tutoriale JS”

Cine este conectat

Utilizatori răsfoind acest forum: Niciun utilizator înregistrat și 2 vizitatori