04 Java Script Fonctions V
04 Java Script Fonctions V
Les fonctions
Larbi HASSOUNI 2
Déclaration d'une fonction
• La syntaxe est :
function nomFonction(parametres) {
instructions
}
• Exemple:
function somme(a, b){
Return a+ b;
}
• Pour être exécutée, une fonction déclarée doit être invoquée.
• Exemple:
• var s = somme(10, 20);
Larbi HASSOUNI 3
Définition d'une fonction expression
Larbi HASSOUNI 4
Définition d'une fonction à l'aide du
constructeur Function
• La syntaxe est:
• var <variable> = new Function("p1", "p2", …, "instructions");
• Exemple
• var x = new Function("a", "b", "return a*b");
• Cette écriture est équivalente à :
• var x = function(a,b){ return a*b;}
Larbi HASSOUNI 5
Function Hoisting
• Hoisting en JavaScript consiste à déplacer par défaut des déclarations
au sommet du scope courant.
• Hoisting s'applique aux déclarations des fonctions, mais pas aux
fonctions expressions.
• Hoisting permet d'utiliser une function avant de la déclarer.
• Exemple :
cube(5);
function cube(y) {
return y * y*y;
}
Larbi HASSOUNI 6
Fonction "auto-invoqué"
Larbi HASSOUNI 7
Les Fonctions sont des Objets
• L'opérateur typeof retourne "function" pour les fonctions.
• Mais, les fonctions JavaScript sont mieux décrites en tant qu'objets.
• Les fonctions ont des propriértés et des méthodes..
• Les fonctions JavaScript possèdent un objet intégré qui représente les arguments reçus par une
fonction lors de son invocation. Cet objet porte le nom: arguments
• l'objet arguments contient un tableau qui stocke les arguments reçus par la function lors de son
invocation.
• arguments.length retourne le nombre d'arguments reçus par la fonction lors de son invocation.
• arguments[i] permet d'obtenir l'argument d'indice i.
• <nomFonction>.toString() retourne la définition de la fonction.
Larbi HASSOUNI 8
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p id="para1"></p><p id="para2"></p><p id="para3"></p>
<script>
function somme(a, b, c){
document.getElementById("para1").innerHTML = "<ul> <li>Length: " +
arguments.length + "</li>"+
"<li>arg0 : " + arguments[0] +"</li>"+
"<li>arg1 : " + arguments[1] +"</li>"+
"<li>arg2 : " + arguments[2] +"</li></ul>";
}
function produit(a, b){return a*b;}
somme(10, 20);
document.getElementById("para2").innerHTML = produit.toString();
</script>
</body>
</html>
Larbi HASSOUNI 9
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8"><title>Insert title here</title></head><body>
<p id="para1"></p><p id="para2"></p><p id="para3"></p>
<script>
function maxArguments() {
var i;
var max = arguments[0];
for (i = 1; i < arguments.length; i++) {
if (arguments[i] > max) { max = arguments[i];}
}
return max;
}
function sommeArguments() {
var i, s = 0;
for (i = 0; i < arguments.length; i++) { s += arguments[i];}return s;}
var max = maxArguments(50, 10, 70, 30, 20);
var somme = sommeArguments(50, 10, 70, 30, 20);
document.getElementById("para1").innerHTML = "Max des argument : " + max;
document.getElementById("para2").innerHTML = "Somme des argument : " + somme;
</script>
</body></html>
Larbi HASSOUNI 10
Règles concernant les Paramètres et
arguments des fonctions
• Lors de la définition d'une fonction, les types des paramètres ne sont
pas spécifiés.
• Lors de l'invocation d'une fonction, les types des arguments ne sont
pas contrôlés.
• Lors de l'invocation d'une fonction, le nombre d'arguments n'est pas
contrôlé.
Larbi HASSOUNI 11
Valeur par défaut d'un paramètre
• Si une une function est invoquée avec un nombre d'arguments inférieur au nombre de
paramètres declarés, les arguments manquants prennent la valeur : undefined
• Des fois, cela est acceptable, mais souvent, il est préférable d'attribuer une valeur par
défaut aux pramètrex. L'exemple suivant présente comment procéder.
function produit(x, y) {
if (y === undefined) {
y = 0;
}
return x * y;
}
Larbi HASSOUNI 12