Alain Barraud | Mémento informatique |
Une fonction est une suite d'instructions ayant un rôle précis (pour ne pas dire une fonction précise…).
Les fonctions que nous allons créer fonctionnent selon le même principe.
Comme exercice d'application, on va créer une fonction qui aura pour but de convertir des Euros en Francs.
Si cela peut se faire sans avoir besoin de faire une fonction, en créant une fonction, on pourra lancer le script &agrage; chaque fois qu'on en aura envie. Il suffira d'appeler cette fonction.
Quelques mots de vocabulaire :
On commence par déclarer notre fonction : on va dire à l'ordinateur "je veux créer une fonction qui s'appelle machin et qui fait ceci".
A savoir :
var
pour les variables). Ici, il s'agit de function
(c'est de l'anglais).![]() |
Ces parenthèses sont indispensables, même si elles sont vides. |
conversion
:
On fait suivre cette déclaration du contenu de la fonction (les instructions de celle-ci).
S'il y a plusieurs instructions (ce qui est généralement le cas), on délimite le contenu de notre fonction grâce à des accolades { et } : on forme alors ce qu'on appelle un bloc d'instructions.
Il va donc falloir écrire le code entre accolades, à la suite de la ligne. Dans notre exercice, on veut :
La fonction créée, on va pouvoir l'utiliser. Pour cela, on écrit (dans le corps de la page) :
On peut maintenant l'appeler quand on veut dans notre page. On va insérer une image qui exécutera cette fonction lorsqu'on cliquera dessus. |
![]() |
Retour sur notre fonction de conversion à laquelle on va faire subir quelques modifications pour pouvoir avec une fonction unique, convertir tout type d'unités :
en cliquant sur un bouton, convertir des mètres en centimètres et en cliquant sur l'image, convertir les euros en francs.
Cela est possible grâce aux arguments :
- le code à exécuter est presque le même, il n'y a que le taux de conversion et le nom des unités qui changent.
- il suffit, au moment de l'appel de la fonction, de dire : "le taux de change est de 6.55957, et les unités sont les Euros et les Francs".
Explication du principe, prenons l'exemple d'une balise (x)HTML :
On reprend notre fonction de conversion, en y apportant quelques modifications : commençons par enlever les unités (on les ajoutera plus tard), et ajouter un argument : le taux de change.
De cette façon, à partir de cette nouvelle fonction, on pourra convertir ce que l'on veut. Il suffira de :
- si on veut convertir des euros en francs, d'écrire conversion(6.55957)
- si on veut convertir des mètres en centimètres, d'écrire conversion(100)
D'abord, lors de la déclaration de la fonction, il faut préciser entre les parenthèses le nom de l'argument qu'on va appeler taux
.
Lorsqu'on appellera la fonction conversion(6.55957)
, cela aura pour effet de créer une variable taux
avant d'exécuter la fonction, et cette variable aura pour valeur 6.55957
. Elle sera détruite une fois la fonction exécutée.
Voici le code modifié et commenté :
Il serait mieux de voir s'afficher le nom des unités…. il suffit de créer deux arguments supplémentaires !
Il suffit de les séparer par des virgules. Bien que l'ordre de création ne soit imposé, mieux vaut le faire de façon "logique".
Ensuite, lorsque l'on appelle la fonction, il faudra donner les paramètres dans le même ordre (si le taux de conversion est en premier, on l'indiquera logiquement en premier.
On choisit cet ordre : unité 1, taux et unité 2.
Avec les modifications, on obtient :
Convertisseur Euros/Frs![]() Cliquer sur l'image pour lancer le convertisseur |
Cliquer sur ce lien pour convertir m/cm Conversion mètres et Centimètres |
Il est possible de créer des arguments facultatifs : on peut choisir de ne pas les préciser lors de l'appel de notre fonction.
Par exemple, il serait possible de créer une fonction qui additionne tous les nombres passés en arguments :
Les arguments ne sont en fait rien d'autre que des variables, mais propres à la fonction : elles sont créées lors de son appel, et elles sont détruites à la fin de celle-ci.
Prenons une fonction :
argument1
et argument2
seront créées et prendront comme valeurs respectives le nombre 57 et la chaîne de caractères 'un message'
.argument1
et argument2
seront détruites.Après avoir créé cette fonction, l'avoir appelée, et une fois cette dernière terminée, si on essaie d'afficher la valeur de la variable argument1
: ça ne marche pas.
Cest normal, elle a été détruite.
Si on renouvelle l'opération, mais en créant une variable à l'intérieur de la fonction, comme ceci :
![]() |
A la fin d'une fonction, toutes les variables déclarées à l'intérieur de celle-ci sont détruites. On utilise le terme de variables locales. |
Noter qu'on parle bien de déclaration, ce qui signifie l'utilisation de var.
Voici pourquoi, dans le dernier exemple, ça ne "marchait pas".
Pourquoi on ne peut pas accéder quand on veut et où on veut à toutes les variables ?!
C'est ingérable : certaines variables seraient peut-être utilisées plusieurs fois (si on donne le même nom à deux variables différentes, par exemple). De plus, il est moyennement apprécié (pour ne pas dire qu'il ne faut jamais le faire) de déclarer plusieurs fois la même variable.
Au moins, avec les variables locales, c'est bien rangé : chaque fonction a ses variables à elle seule, on peut donc les modifier sans craindre de modifier une variable d'une autre fonction.
Et il suffit d'utiliser les arguments pour passer des valeurs d'une fonction à l'autre.
Il est quand même possible de créer des variables dites globales, c'est-à-dire accessibles depuis n'importe quelle fonction.
![]() |
Ces variables sont à utiliser le moins possible ! |
var
: on l'utilise comme si elle avait déjà été déclarée (on parle de déclaration implicite). L'exemple serait le même que celui du dessus, mais sans les 3 premières lignes. Les variables sont créées directement dans la fonction.Partons de cet exemple :
On peut déjà écrire la première ligne de code :
resultat
On a notre fonction et notre résultat, il nous reste plus qu'à dire : "je veux que ma fonction prenne cette valeur".
Pour employer le terme exact: "on veut que notre fonction renvoie (ou retourne) cette valeur".
Par exemple, avec prompt
, la valeur retournée est le texte tapé par l'utilisateur.
Dans notre cas, c'est le contenu de la variable resultat
.
Pour ce faire, on fait précéder la valeur à renvoyer du mot-clé return
.
![]() |
Lorsqu'une fonction retourne une valeur, son exécution se termine : s'il reste du code à exécuter dans cette fonction, il sera ignoré. Pour stopper l'exécution d'une fonction, on peut donc utiliser simplement ceci, qui ne renvoie rien, mais termine l'exécution : Code : JavaScript
1 return;
|
triple(x)
qui renvoie le triple de l'argumentcarre(x)
qui renvoie le carré de l'argument (x²)cube(x)
qui renvoie le cube de l'argument.Réaliser : une mini-calculatrice, demandant deux nombres et affichant les résultats des 4 opérations "de base" (addition, ...), en créant une fonction pour chaque opération.
On a vu que dans le code de la fonction, certaines lignes sont en retrait par rapport aux autres : cela s'appelle l'indentation.
Cela consiste à décaler certaines parties du code (mais pas n'importe lesquelles), de manière à le rendre plus lisible.
Le code se rassemble en "groupes" (la plupart du temps, ils correspondent aux blocs d'instructions).
L'indentation consiste à décaler tout le code de ce "groupe" d'une tabulation.
Exemple pour miux visualiser :
Pour créer ce retrait, on utilise la touche TAB
.
Les espaces sont aussi utilisés, …
Voir page wikipedia