6.1     Les Fonctions



On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter une série d'instructions dans plusieurs parties du programme, cela permet une simplicité du code. D'autre part, une fonction peut faire appel à elle-même, on parle alors de fonction récursive (il ne faut pas oublier dans ce cas de mettre une condition de sortie au risque de ne pas pouvoir arrêter le programme).

JavaScript contient des fonctions prédéfinies qui peuvent s'appliquer pour un ou plusieurs types d'objets spécifiques, on appelle ces fonctions des méthodes.

La syntaxe d'une fonction est la suivante :

function nomDeLaFonction (paramètre1 , paramètre2, ...) {
      séquence d'instructions
}

Le mot function est un mot réservé de JavaScript. Il indique à l'interpréteur JavaScript que tout ce qui suit est une fonction qui portera le nom nomDeLaFonction. nomDeLaFonction est le nom que le programmeur a donné à sa fonction. Les contraintes de nommage des fonctions sont les mêmes que celles qui régissent les noms de variables. Là encore, il est raisonnable de donner aux fonctions des noms représentatifs des tâches qu'elles accomplissent.

(paramètre1, paramètre2) entre parenthèses, représentent les paramètres que l'on doit transmettre à la fonction si celle-ci est programmée pour travailler à partir de paramètres transmis. Si la fonction est prévue pour fonctionner toute seule, sans transmission de paramètre, on laissera les parenthèses, mais en les collant l'une à l'autre : "()". Les deux parenthèses collées, "()", l'une ouvrante, l'autre fermante derrière le nom de la fonction, sont obligatoires.

Les trois premiers exemples s'exécutent dans l'éditeur. Le quatrième exemple s'exécute dans la fenêtre en bas de la page.

Exemple 1

    function carre(n){
      var n = prompt("Entrez votre valeur",0);
      var txt = "Le carré du nombre "+n+" est égal à : ";
      var c = n*n;
      alert(txt+c);
    }
    
        Exécuter cet exemple : Exemple 1

L'instruction return permet d'indiquer la valeur de retour d'une fonction. D'autre part, elle permet également de terminer une fonction.

Exemple 2

    function somme(x,y){
      return x+y
    } 
    
        Exécuter cet exemple : Exemple 2

JavaScript lit les fonctions présentes dans une page, lors de son ouverture, mais ne les exécute pas.

Une fonction n'est exécutée qu'au moment de son appel.

Exemple 3

Voici un exemple classique de fonction récursive : la fonction factorielle.

    function fact(n){
       if (n==0){
            return 1}else{
               return (n*fact(n-1))
       }
    }   
        
        Exécuter cet exemple : Exemple 3

Exemple 4

    function carre(x){
       return x * x;
       }
     a = carre(5); b = carre; c = b(6);
     alert("a = "+a);
     alert("b = "+b);
     alert("c = "+c);
        
        Exécuter cet exemple : Exemple 4

Exercice 1

    //Math.random() génére un nombre aléatoire entre 0 et 1.
    //Créer une fonction qui affiche le résultat de deux lancers de dés.
    function lancer(){
        var de1 = 1; var de2 = 1;
        //Compléter ici
        alert("dé n° 1 : "+de1+"\ndé n° 2 : "+de2)
    }
        
        Copier cet exercice : Exercice 1                

Exercice 2

    //Notes est un tableau qui contient mes notes. Afficher la moyenne des notes et la note maximale.
    //Notes[1] représente la deuxième note.
    var Notes = [4 , 3.5 , 4.5 , 2 , 5.5 , 3]
    
    
        Copier cet exercice : Exercice 2                

Exercice 3

    //Devinette. Trouver une nombre compris entre 1 et 20 en moins de trois coups.
    //Créer une fonction qui indique à l'utilisateur si sa proposition est trop petite ou trop grande.
    
        Copier cet exercice : Exercice 3