[[web:javascript|{{ :iconemaison.jpg?nolink&25|Accueil JavaScript}}]] ===== JavaScript - Les fonctions ===== [Mise à jour le 25/6/2021] * **Sources** et compléments sur **MDN Web Docs** * Fonctions \\ * ** Lectures connexes** * Wikis WebPEM : [[:outils:vscode:web|"Préparer un projet de site Web avec l'IDE VSCode"]] ==== 1. Introduction ==== Il existe deux grands types de fonctions en JavaScript : les fonctions **natives** ou **prédéfinies** (qui sont en fait des méthodes) qu'il suffit d'appeler et les fonctions **personnalisées** à créer. Une fonction est un **ensemble de traitements réutilisables** effectués à partir de **paramètres** et renvoyant un** résultat**. **Description** //typeRetour// **nomFonction**(//type1// param1,... ,//typen paramn, [,//type// paramFacultatif=valeur]) \\ - //typeRetour// est le type de donnée renvoyé par la fonction. \\ - param1,... ,//typen sont les types des paramètres passés à la fonction. \\ - Lorsqu'un paramètre facultatif est utilisé, une valeur par défaut est appliquée. // Exemple// Integer parseInt(String chaîne [, String base]) ==== 2. Les fonctions natives (built-in) ==== * **Ressource** : Fonctions prédéfinies Les fonctions natives sont intégrées au langage. // Exemple // : //Integer// **parseInt**(//String// chaîne [,//String// base]) console.log(parseInt("150")); // Renvoie 150 console.log(parseInt("150.45")); // Renvoie 150 console.log(parseInt("150xxx")); // Renvoie 150 console.log(parseInt("xxx150")); // Renvoie NaN console.log(parseInt("FF",16)); // Renvoie 255 ==== 3. Les fonctions personnalisées ==== === 3.1 Déclarer une fonction === * **Méthode 1** : courante // Syntaxe // function nomFonction(param1, ... , paramN){ // Instruction(s) } * **Méthode 2** : avec le constructeur //function// // Syntaxe // nomFonction = function(param1, ... , paramN){ // Instruction(s) } Le nom d'une fonction ne recevant pas de paramètres est écrit avec des parenthèses soit : nomFonction(). === 3.2 Renvoyer un résultat === Pour renvoyer un résultat, on utilise l'instruction //**return**// suivie de la valeur. //return// stoppe l'exécution de la fonction et peut être utilisé sans valeur. // Exemple // // Calcul de la somme des valeurs de 1 à n function Somme1aN(n) { var somme = 0; for (i = 0; i <= n; i++) { somme += i; } return somme; } === 3.3 Utiliser une fonction === // Appel de la fonction ci-dessus var n = 45; var resultat = Somme1aN(n); console.log("Somme=" + resultat + " pour n=" + n); // Affiche Somme=1035 pour n=45 Une fonction est souvent déclarée dans un fichier JavaScript externe. Son intégration dans la page web se fait avec la balise // * **Fonction auto-exécutée** // Syntaxe // (function(param1, param2,...,paramN){ // Traitements })(p1, p2, ...,pN); Cette syntaxe remplace l'écriture traditionnelle de déclaration de la fonction puis de son appel.