<HEAD> <SCRIPT LANGUAGE=JavaScript > Function nomProcédure(param1, param2, ...) { séquence d'instructions; } Function nomFonction(param1, param2, ...) { séquence d'instructions; return nom_variable } </SCRIPT> </HEAD> |
nomProcédure(valeur1, valeur2, ...) ; variable = nomFonction(valeur1, valeur2, ...) ; |
<HEAD> <SCRIPT> // déclaration de la procédure function bonjour(prenom) { document.write("Bonjour, comment vas-tu ", prenom," ?<br>"); } // déclaration de fonctions function volumeSphere(rayon) { return 4/3*Math.PI*Math.pow(rayon,3); } function calculerPrix(PrixUnitaire, NbArticles) { return PrixUnitaire* NbArticles; } </SCRIPT> </HEAD> <BODY> // appel de la procédure bonjour("Toto") ; //appels des fonctions var montant=CalculPrix( 150 , 4) ; document.write( "Tu dois payer ", calculerPrix( 150, 4), "F.<BR>"); document.write( "Sais-tu que le volume de la sphère de rayon unité est ", volumeSphere(1)," ?<BR>" ); </BODY> |
<HEAD> <SCRIPT LANGAGE=JavaScript > function bonjour(nom) { // nom est un paramètre local var ch ="Salut !"; // ch est une variable locale document.write("au début de la fonction : Bonjour "+nom +"<BR>"); nom = "Alain"; // on modifie le paramètre local document.write("à la fin de la fonction : Bonjour "+nom +"<BR>"); } var prenom = "Jacques"; bonjour(prenom) ; document.write("après appel de la fonction : Bonjour "+prenom +"<BR>"); </SCRIPT> <HEAD> |
Comparez avec le corrigé 1.
document.write("après appel de la fonction : "+ ch +" bonjour "+nom +"<BR>"); |
+ ch
, qu'obtient-on ?
<HTML> <BODY> <script> function fact(n) { if (n==0) return 1 else return (n*fact(n-1)) } nb=prompt("N= ","0"); document.write("Liste des premières factorielles jusqu'à ", nb); for (var i=0;i<nb;i++) document.write(i+ " ! = "+fact(i)+"<br>") </script> </BODY> </HTML> |
Qu'obtient-on exactement à l'exécution ?
Pour vérifier, voir le corrigé exemple 3
arguments
.calculer
, ce tableau a : calculer.arguments[i]
calculer.arguments.length
function calculerPrix(PrixUnitaire, NbArticles) { if (calculerPrix.arguments.length !=2) alert("impossible de calculer le prix !") else return PrixUnitaire* NbArticles; }Dans le cas où l'on ne passe pas 2 paramètres effectifs lors de son appel, cette fonction affiche un message d'alerte et renvoie la valeur
undefined
function somme() { var resultat=0 ; for (var i=0; i < somme.arguments.length; i++) resultat += somme.arguments[i] ; return resultat ; } // quelques appels document.write("1+2+3 = somme(1,2,3) = " + somme(1,2,3)+"<p>"); document.write("1+2+3+ .. +10 = somme(1,2,3,4,5,6,7,8,9,10) = " + somme(1,2,3,4,5,6,7,8,9,10)+"<p>"); document.write(" somme(15.4) = " + somme(15.4)+"<p>"); document.write(" somme() = " + somme()+"<p>"); |
Function()
, semblable aux constructeurs Date(), Image()
, permettant de définir une nouvelle fonction, lors de l'exécution.nom_fct=Function("arg1", .. "argN", "code_fct")
, où :
arg1, .. argN
est la liste des paramètres de la fonction
code_fct
est le code, donc la suite des instructions, séparées par des ;
<script> function f1(x) { return x*x } var f2 = new Function("x","return x*x") document.write("f1(12) =" + f1(12) + "<BR>") document.write("f2(12) =" + f2(12) + "<BR>") </script> |
Pour vérifier, voir le corrigé exemple 5