Nume Tutorial:Functii - 2
Descriere:Functii - 2
Download:
Autor:
Sursa (Link-ul oficial):
Propria parere:Enjoy!
Tutorialul:1. Modificarea numarului argumentelor
Cand creem o functie ii definim si numarul de argumente pe care le accepta, lucru de care se tine cont in momentul apelarii ei.
Sunt situatii in care dorim sa transmitem functiei un numar diferit de argumente, care poate fi mai mic sau mai mare decat numarul de argumente pe care le are functia la construirea ei.
Intr-o astfel de situatie putem folosi o valoare prestabilita in interiorul functiei, pentru cazul in care nu sunt transferate argumente.
In continuare va fi prezentat un script care afiseaza un mesaj de salut atunci cand utilizatorul ajunge la o pagina web. Programul afiseaza un anumit mesaj daca recunoaste sau nu numele vizitatorului. Daca "utilizator" nu este "null" variabila a fost definita. Acest lucru este posibil doar daca o valoare, ca " Media", este transferata functiei. Daca variabila "utilizator" este egal cu "null" atunci scriptul evita folosirea variabilei in mesajul de salut.
<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 afisa in pagina urmatorul rezultat:
Prima apelare a functiei mesaj()
Salut Media
A doua apelare a functiei mesaj()
Bine ati venit pe site!
- Studiati codul functiei si observati diferenta mesajelor din cele ddoua apelari.
In unele situatii unei functii ii sunt transferate mai multe argumente decat au fost specificate la crearea ei. Valorile argumentelor suplimentare nu sunt pierdute, acestea se stocheaza intr-un tablou (sau "matrice") numit "arguments" , care exista implicit pentru orice functie.
Toate argumentele sunt pastrate in acest tablou si pot fi extrase in interiorul corpului functiei.
Argumentele functiei "mesaj" sunt stocate in tabloul "mesaj.arguments". Stocarea se face intr-o ordine asigurata de o "cheie" a carei prima valoare este 0.
Pentru a extrage primul element din tabloul "arguments" al functiei "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 gasi numarul total de argumente din tablou putem folosi o instructiune speciala "length" care returneaza lungimea (nr. de elemente) unui tablou (numit si "matrice").
Urmatorul exemplu atribue variabilei "nrArg" o valoare care reprezinta numarul de argumente (elemente) din tabloul "mesaj.arguments":
nrArg = mesaj.arguments.length
Folosind instructiunile prezentate mai sus (legate de tabloul "arguments"), putem crea o noua versiune a scriptului din primul exemplu. Aceasta versiune raspunde mai corect in functie de cunoasterea sau nu a numelui utilizatorilor.
<html>
<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);
}
}
}
//-->
</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>
</html>
Acest exemplu va afisa in pagina web urmatorul rezultat:
Salut Marius Bine ai revenit
Bine ati venit pe site Vrei sa devii membru ? Te poti inscrie online
2. Functii recursive
O functie JavaScript poate fi recursiva, adica se poate autoapela.
O metoda buna de a demonstra capacitatea recursiva a functiilor este rezolvarea unei ecuatii factoriale.
In exemplul urmator avem o functie JavaScript recursiva care afla factorialul unui numar precizat "n" (aici 7):
<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 7" onclick="alert(factorial(7))" >
</form>
</body>
</html>
[Tutorial JS]Functii - 2
Moderator: Manageri Resurse
- [EuropaCs] Zona Administrativa
- - Regulament
- - Anunturi
- - Esti nou? Prezinta-te!
- - Cerere DNS
- - Cerere Parteneriat
- - Propuneri forum
- - Recomandari
- - Evenimente
- - - Big Events
- - - Proiecte
- - - Concursuri
- - - Evenimente Externe
- - Zona Staff
- - - Reclamatii
- - - Absente/Retrageri Staff
- - - Adunare Staff
- - - Adunarea Designerilor
- - - Adunarea Detinatorilor
- - - Adunarea Managerilor
- - - Adunarea Moderatorilor
- - - Adunarea Mod. G.
- - - Adunarea Conducerii
- - - ePoints
- - - ePremium
- - - Productii
- - - Pareri Staff
- - Zona Cererilor
- - - Cerere Admin Server
- - - Cerere Moderator
- - - Cerere Manager Resurse
- - - Cerere Designer
- - - Cerere Moderator Global
- - - Cerere Schimbare Nume
- - - Cerere Adaugare Warn
- - - Cerere Scoatere Warn
- - - Cerere Adaugare Ban
- [EuropaCs] Servere
- - ZmX.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea serverului
- - - Cereri Admin/Slot/VIP
- - - Obligatii Admin/Slot/VIP
- - - Cereri Marire Grad
- - - Cereri Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista Ban-uri
- - - Cereri Ban
- - - Cereri Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare probleme
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Status
- [EuropaCs] Tutoriale, Resurse, Suport
- - Tutorial si Resurse Counter Strike 1.6
- - - Tutoriale Counter Strike 1.6
- - - Tutoriale Mapping
- - - Resurse Counter Strike 1.6
- - - - Config-uri
- - - - Addons-uri
- - - - Pluginuri
- - - - Moduri
- - - - Kit-uri Cs
- - - - Servere gata facute
- - - - Harti
- - - - Server Creator
- - - - Skin-uri
- - - - Script-uri
- - - - Sunete
- - - - Programe Folositoare
- - - - Tatuaje
- - - - Anticheat
- - Tutoriale si Resurse Counter-Strike:Global Offensive
- - - Tutoriale Counter-Strike:Global Offenisve
- - - Resurse Counter-Strike:Global Offensive
- - - - Pluginuri
- - - - Harti
- - - - Script-uri
- - - - Programe Folositoare
- - - - Mod-uri
- - - - Addons-uri
- - - Arhiva Resurse
- - Suport Counter-Strike
- - - Cerere Addons-uri
- - - Cerere Pluginuri
- - - Cerere Config-uri (CFG)
- - - Cerere Motd-uri
- - - Cerere Tutoriale
- - - Probleme Servere
- - - Problema Pluginuri
- - - Problema Client (Joc)
- - - Diverse Probleme
- - Tutoriale si Resurse WEB
- - - Design si WebSite Review
- - - Index-uri ( Intro)
- - - Script-uri
- - - Script-uri Gratis
- - - Teme phpBB3
- - - Resurse Web
- - - Tutoriale HTML
- - - Tutoriale PHP
- - - Tutoriale JS
- - - Tutoriale CSS
- - - Tutoriale C / C++ / C#
- - Asistenta Counter-Strike | EuropaCs
- - - Anunturi
- - - Addons-uri Configurate de EuropaCs
- - - Pachete de Harti (Mape)
- - - Tutoriale Forum Originale
- - - Tutoriale Counter Strike Originale
- - - Pluginuri Recomandate
- [EuropaCs] Design 2D & 3D
- - Tutoriale si Resurse
- - - Tutoriale 2D & 3D
- - - Resurse
- - Creatii 2D & 3D
- - Cereri 2D & 3D
- - Provocari
- - Competitii
- - - Competitii EuropaCs
- - Cadouri
- - Diverse
- [EuropaCs] Cafenea
- - Jocuri
- - - Reviews Jocuri
- - - Giveaways
- - - Probleme si Intrebari
- - - Discutii
- - Zona IT
- - - Tutoriale IT
- - - Hardware
- - - Software
- - - Comunicatii
- - - - Android
- - - - SymByan
- - - - IOS
- - - Stiri IT
- - - Calculatorul Meu
- - Social
- - - Cultura generala
- - - Descoperiri
- - - Educatie
- - - Sport
- - - - Fotbal
- - - Auto/Moto
- - - Filme & Seriale
- - - - Filme
- - - - Seriale
- - Bazar
- - - Vanzari
- - - Cumparari
- - Probleme si Intrebari
- - Discutii
- - War2.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Inscrieri
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Lista de Demo si Poze
- - - Discutii
- - - Revizualizare
- - - Status
- - Zm2.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - [EuropaCs] Competitii si Turnee
- - - League of Legends
- - - - Anunturi
- - - - Provocari
- - - - Recrutare
- - - - Free to Win #11
- - - - Discutii
- - - Counter-Strike:Global Offensive
- - - - Anunturi
- - - - Provocari
- - - - Recrutare
- - - - Competitii CS:GO
- - - - Discutii
- - Pro.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Arena.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Cerere Marire Grad
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Status
- - ZmC.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Mix.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Staff Server
- - - Cereri Admin
- - - Cereri Unban
- - - Reclamatii
- - - Status
- - [EuropaCs] Legaturi
- - - Inregistreaza-te
- - - Grup Steam
- - - Clan GameTracker.Com
- - - Afilieri servere
- - Nume.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea serverului
- - - Cereri Admin/Slot/VIP
- - - Obligatii Admin/Slot/VIP
- - - Cereri Marire Grad
- - - Cereri Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista Ban-uri
- - - Cereri Ban
- - - Cereri Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare probleme
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Status
- - FuNNy.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea serverului
- - - Cerere Admin/Slot
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Furien.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Fury.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - CsMedias.EuropaCs.Ro
- - - Regulament
- - - Anunturi Generale
- - - Staff Only
- - - Cereri Accese
- - - - Cereri Admin
- - - - Cereri Slot
- - - - Cereri VIP
- - - Cerere Schimbare Nume Admin
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Discutii
- - - Arhiva Serverului
- - - Statistici GameTracker.Com
- - - Status
- - Respawn.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Factory.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Fatal.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cereri Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Cs.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Zm.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva serverului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- - Servere Counter Strike 1.6
- - - Zm.EuropaCs.Ro
- - - - Regulament
- - - - Anunturi
- - - - Administrare Server
- - - - Conducerea serverului
- - - - Cereri Admin/Slot/VIP
- - - - Obligatii Admin/Slot/VIP
- - - - Cereri Marire Grad
- - - - Cereri Schimbare Nume Admin
- - - - Evenimente
- - - - Promovari & Sanctionari
- - - - Reclamatii
- - - - Lista Ban-uri
- - - - Cereri Ban
- - - - Cereri Unban
- - - - Absente & Retrageri
- - - - Propuneri & Sugestii
- - - - Raportare probleme
- - - - Discutii
- - - - Arhiva serverului
- - - - Statistici GameTracker.Com
- - - - Status
- - ZmX.EuropaCs.Ro
- - - Regulament
- - - Anunturi
- - - Administrare Server
- - - Conducerea Server-ului
- - - Cerere Admin/Slot/VIP
- - - Obligatii Admini/Slot/VIP
- - - Cerere Marire Grad
- - - Cerere Schimbare Nume Admin
- - - Evenimente
- - - Promovari & Sanctionari
- - - Reclamatii
- - - Lista de Ban-uri
- - - Cerere Ban
- - - Cerere Unban
- - - Absente & Retrageri
- - - Propuneri & Sugestii
- - - Raportare Problema
- - - Discutii
- - - Arhiva Server-ului
- - - Statistici GameTracker.Com
- - - Evidenta + Redirecte CsServers
- - - Evidenta + Redirecte xHlds
- - - Status
- [EuropaCs] Arhiva
- - Arhiva Publica
Cine este conectat
Utilizatori răsfoind acest forum: Niciun utilizator înregistrat și 2 vizitatori

