Retour tutorial

 

Les fonctions -- Avancé --

Passer une valeur à une fonction

On peut passer des valeurs ou paramètres aux fonctions Javascript. La valeur ainsi passée sera utilisée par la fonction
Pour passer un paramètre à une fonction, on fournit un nom d'une variable dans la déclaration de la fonction.

Un exemple un peu simplet pour comprendre. J'écris une fonction qui affiche une boite d'alerte dont le texte peut changer.
Dans la déclaration de la fonction, on écrit :

    function Exemple(Texte) {
    alert(texte);
    }

Le nom de la variable est Texte et est définie comme un paramètre de la fonction.
Dans l'appel de la fonction, on lui fournit le texte :

    Exemple("Salut à tous");

Passer plusieurs valeurs à une fonction

On peut passer plusieurs paramètres à une fonction. Comme c'est souvent le cas en Javascript, on sépare les paramètres par des virgules.

    function nom_de_la_fonction(arg1, arg2, arg3) {
    ... code des instructions ...
    }

Notre premier exemple devient pour la déclaration de fonction :

    function Exemplebis(Texte1, Texte2){...}

et pour l'appel de la fonction

    Exemplebis("Salut à tous", "Signé Luc")

Retourner une valeur

Le principe est simple (la pratique parfois moins). Pour renvoyer un résultat, il suffit d'écrire le mot clé return suivi de l'expression à renvoyer. Notez qu'il ne faut pas entourer l'expression de parenthèses. Par exemple :

    function cube(nombre) {
    var cube = nombre*nombre*nombre
    return cube;
    }

Précisons que l'instruction return est facultative et qu'on peut trouver plusieurs return dans une même fonction.

Pour exploiter cette valeur de la variable retournée par la fonction, on utilise une formulation du type document.write(cube(5)).

Variables locales et variables globales

Avec les fonctions, le bon usage des variables locales et globales prend toute son importance.

Une variable déclarée dans une fonction par le mot clé var aura une portée limitée à cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. On l'appelle donc variable locale.

    function cube(nombre) {
    var cube = nombre*nombre*nombre
    }

Ainsi la variable cube dans cet exemple est une variable locale. Si vous y faites référence ailleurs dans le script, cette variable sera inconnue pour l'interpréteur Javascript (message d'erreur).


Si la variable est déclarée contextuellement (sans utiliser le mot var), sa portée sera globale -- et pour être tout à fait précis, une fois que la fonction aura été exécutée--.

    function cube(nombre) {
    cube = nombre*nombre*nombre
    }

La variable cube déclarée contextuellement sera ici une variable globale.

Les variables déclarées tout au début du script, en dehors et avant toutes fonctions, seront toujours globales, qu'elles soient déclarées avec var ou de façon contextuelle.

    <SCRIPT LANGUAGE="javascript">
    var cube=1
    function cube(nombre) {
    var cube = nombre*nombre*nombre
    }
    </SCRIPT>

La variable cube sera bien globale.

Pour la facilité de gestion des variables, on ne peut que conseiller de les déclarer en début de script (comme dans la plupart des langages de programmation). Cette habitude vous met à l'abri de certaines complications.


Retour tutorial