JavaScript - les fonctions
Définition
les fonctions sont des instructions qui s'implémentent indépendamment du code principal. Elles ont un nom et une signature
En algorithmique, il en existe 2 sortes:
-
Les fonctions
Elles retournent systèmatiquement un résultat qui peut être une chaîne de caractère, un entier, un bool ... grâce au mot clef : return
Les procédures
Il s'agit d'une suite d'instructions mais qui ne retourne pas de résultat
Utilisation basique
Pour implémenter une fonction on utilise le mot clef function suivit du nom et de la signature
- Function ma_fonction(param1,param2){
- //ici l'implémentation de la fonction
- }
Par exemple
- //Exemple de fonction
- Function square(valeur){
- return valeur*valeur;
- }
- //Exemple de procédure
- Function afficher(str){
- documnt.write(str);
- }
Pour utiliser la fonction, il suffit de l'appeler par son nom.
- //[...]
- let val=Prompt("saisir un entier");
- //J'appelle la fonction "square" et stocke le resultat dans une variable
- var val2=square(val);
- //J'appelle la fonction "afficher" pour afficher le résultat
- afficher(val2);
Passage en valeur, passage en référence
Il existe deux solutions pour passer une variable dans une fonction : en valeur ou en Référence.
-
En valeur
Lorsqu'une variable est passée en valeur, celle-ci ne varie pas par rapport au code principal
- var var1=2;
- function square(val){
- return val * val;
- }
- console.log("var1 vaut "+var1);
- console.log("le carré de var1 vaut "+square(var1));
- console.log("var1 vaut "+var1);
var1 vaut 2 le carré de var1 vaut 4 var1 vaut 2 -
En référence
Contrairement au passage en valeur, lorsqu'une variable est passée en référence, sa valeur changera en sortie de fonction.
Le problème c'est que par défaut toute variable passée en paramètre l'est forcement en valeur,
Fonctions anonymes vs fonctions définies
En JavaScript le nom d'une fonction n'est pas obligatoire, on peut l'implémenter et l'affecter à une variable
- var mafonction=function(){
- alert('pop');
- }
- mafonction();
Cependant contrairement au fonction définie (avec un nom de fonction)Celle-ci ne peuvent être utilisé avant d'être implémenté
- mafonction();
- var mafonction=function(){
- alert('pop');
- }
- //Va générer une erreur
- mafonction();
- function mafonction(){
- alert('pop');
- }
- //Va emettre alert
Les fonctions fléchées
Une fonction fléchée (=>)possède une syntaxe plus courte
- (param=>{console.log(param)})("test");
Celle-ci peut être affecté à une variable en vue d'une utilisation future
- var fnc=(param=>{console.log(param)});
- [...]
- fnc("test");