
<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