You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/fr/2-js-basics/2-functions-methods/README.md

12 KiB

Notions de base en JavaScript : Méthodes et Fonctions

Notions de base en JavaScript - Fonctions

Sketchnote par Tomomi Imura

Quiz avant le cours

Quiz avant le cours

Quand on pense à écrire du code, on veut toujours s'assurer qu'il soit lisible. Bien que cela puisse sembler contre-intuitif, le code est lu bien plus souvent qu'il n'est écrit. Un outil essentiel dans la boîte à outils d'un développeur pour garantir un code maintenable est la fonction.

Méthodes et Fonctions

🎥 Cliquez sur l'image ci-dessus pour une vidéo sur les méthodes et fonctions.

Vous pouvez suivre cette leçon sur Microsoft Learn!

Fonctions

Au cœur, une fonction est un bloc de code que nous pouvons exécuter à la demande. Cela est parfait pour les scénarios où nous devons effectuer la même tâche plusieurs fois; au lieu de dupliquer la logique à plusieurs endroits (ce qui rendrait les mises à jour difficiles), nous pouvons la centraliser en un seul endroit et l'appeler chaque fois que nous avons besoin d'effectuer l'opération - vous pouvez même appeler des fonctions depuis d'autres fonctions!

Tout aussi important est la capacité de nommer une fonction. Bien que cela puisse sembler trivial, le nom fournit un moyen rapide de documenter une section de code. Vous pouvez voir cela comme une étiquette sur un bouton. Si je clique sur un bouton qui indique "Annuler le minuteur", je sais qu'il va arrêter le chronomètre.

Créer et appeler une fonction

La syntaxe d'une fonction ressemble à ceci:

function nameOfFunction() { // function definition
 // function definition/body
}

Si je voulais créer une fonction pour afficher un message de salutation, cela pourrait ressembler à ceci:

function displayGreeting() {
  console.log('Hello, world!');
}

Chaque fois que nous voulons appeler (ou invoquer) notre fonction, nous utilisons le nom de la fonction suivi de (). Il est important de noter que notre fonction peut être définie avant ou après que nous décidions de l'appeler; le compilateur JavaScript la trouvera pour vous.

// calling our function
displayGreeting();

NOTE : Il existe un type spécial de fonction appelé méthode, que vous utilisez déjà! En fait, nous l'avons vu dans notre démonstration ci-dessus lorsque nous avons utilisé console.log. Ce qui différencie une méthode d'une fonction, c'est qu'une méthode est attachée à un objet (console dans notre exemple), tandis qu'une fonction est indépendante. Vous entendrez de nombreux développeurs utiliser ces termes de manière interchangeable.

Bonnes pratiques pour les fonctions

Voici quelques bonnes pratiques à garder à l'esprit lors de la création de fonctions:

  • Comme toujours, utilisez des noms descriptifs pour savoir ce que la fonction fera.
  • Utilisez le camelCasing pour combiner les mots.
  • Gardez vos fonctions concentrées sur une tâche spécifique.

Passer des informations à une fonction

Pour rendre une fonction plus réutilisable, vous voudrez souvent lui transmettre des informations. Si nous considérons notre exemple displayGreeting ci-dessus, il affichera uniquement Hello, world!. Pas la fonction la plus utile qu'on puisse créer. Si nous voulons la rendre un peu plus flexible, comme permettre à quelqu'un de spécifier le nom de la personne à saluer, nous pouvons ajouter un paramètre. Un paramètre (parfois aussi appelé argument) est une information supplémentaire envoyée à une fonction.

Les paramètres sont listés dans la partie définition entre parenthèses et sont séparés par des virgules comme ceci:

function name(param, param2, param3) {

}

Nous pouvons mettre à jour notre displayGreeting pour accepter un nom et l'afficher.

function displayGreeting(name) {
  const message = `Hello, ${name}!`;
  console.log(message);
}

Lorsque nous voulons appeler notre fonction et transmettre le paramètre, nous le spécifions entre parenthèses.

displayGreeting('Christopher');
// displays "Hello, Christopher!" when run

Valeurs par défaut

Nous pouvons rendre notre fonction encore plus flexible en ajoutant plus de paramètres. Mais que faire si nous ne voulons pas exiger que chaque valeur soit spécifiée? En restant sur notre exemple de salutation, nous pourrions laisser le nom comme obligatoire (nous devons savoir qui nous saluons), mais nous voulons permettre que la salutation elle-même soit personnalisée si désiré. Si quelqu'un ne veut pas la personnaliser, nous fournissons une valeur par défaut à la place. Pour fournir une valeur par défaut à un paramètre, nous la définissons de la même manière que nous définissons une valeur pour une variable - parameterName = 'defaultValue'. Pour voir un exemple complet:

function displayGreeting(name, salutation='Hello') {
  console.log(`${salutation}, ${name}`);
}

Lorsque nous appelons la fonction, nous pouvons alors décider si nous voulons définir une valeur pour salutation.

displayGreeting('Christopher');
// displays "Hello, Christopher"

displayGreeting('Christopher', 'Hi');
// displays "Hi, Christopher"

Valeurs de retour

Jusqu'à présent, la fonction que nous avons construite affichera toujours un résultat dans la console. Parfois, cela peut être exactement ce que nous recherchons, en particulier lorsque nous créons des fonctions qui appelleront d'autres services. Mais que faire si je veux créer une fonction utilitaire pour effectuer un calcul et fournir la valeur en retour afin que je puisse l'utiliser ailleurs?

Nous pouvons le faire en utilisant une valeur de retour. Une valeur de retour est renvoyée par la fonction et peut être stockée dans une variable de la même manière que nous pourrions stocker une valeur littérale comme une chaîne ou un nombre.

Si une fonction retourne quelque chose, alors le mot-clé return est utilisé. Le mot-clé return attend une valeur ou une référence de ce qui est retourné comme ceci:

return myVariable;

Nous pourrions créer une fonction pour créer un message de salutation et renvoyer la valeur à l'appelant.

function createGreetingMessage(name) {
  const message = `Hello, ${name}`;
  return message;
}

Lors de l'appel de cette fonction, nous stockerons la valeur dans une variable. C'est de la même manière que nous définirions une variable avec une valeur statique (comme const name = 'Christopher').

const greetingMessage = createGreetingMessage('Christopher');

Fonctions comme paramètres pour d'autres fonctions

Au fur et à mesure que vous progressez dans votre carrière de programmeur, vous rencontrerez des fonctions qui acceptent d'autres fonctions comme paramètres. Cette astuce pratique est couramment utilisée lorsque nous ne savons pas quand quelque chose va se produire ou se terminer, mais nous savons que nous devons effectuer une opération en réponse.

Par exemple, considérez setTimeout, qui démarre un minuteur et exécutera du code lorsqu'il se terminera. Nous devons lui indiquer quel code nous voulons exécuter. Cela semble être un travail parfait pour une fonction!

Si vous exécutez le code ci-dessous, après 3 secondes, vous verrez le message 3 secondes se sont écoulées.

function displayDone() {
  console.log('3 seconds has elapsed');
}
// timer value is in milliseconds
setTimeout(displayDone, 3000);

Fonctions anonymes

Regardons à nouveau ce que nous avons construit. Nous créons une fonction avec un nom qui sera utilisé une seule fois. À mesure que notre application devient plus complexe, nous pouvons nous retrouver à créer beaucoup de fonctions qui ne seront appelées qu'une seule fois. Ce n'est pas idéal. En fait, nous n'avons pas toujours besoin de fournir un nom!

Lorsque nous passons une fonction comme paramètre, nous pouvons éviter d'en créer une à l'avance et à la place en construire une directement dans le paramètre. Nous utilisons le même mot-clé function, mais nous la construisons comme un paramètre.

Réécrivons le code ci-dessus pour utiliser une fonction anonyme:

setTimeout(function() {
  console.log('3 seconds has elapsed');
}, 3000);

Si vous exécutez notre nouveau code, vous remarquerez que nous obtenons les mêmes résultats. Nous avons créé une fonction, mais nous n'avons pas eu besoin de lui donner un nom!

Fonctions fléchées

Un raccourci courant dans de nombreux langages de programmation (y compris JavaScript) est la possibilité d'utiliser ce qu'on appelle une fonction fléchée ou fat arrow function. Elle utilise un indicateur spécial =>, qui ressemble à une flèche - d'où son nom! En utilisant =>, nous pouvons éviter d'écrire le mot-clé function.

Réécrivons notre code une fois de plus pour utiliser une fonction fléchée:

setTimeout(() => {
  console.log('3 seconds has elapsed');
}, 3000);

Quand utiliser chaque stratégie

Vous avez maintenant vu que nous avons trois façons de passer une fonction comme paramètre et vous vous demandez peut-être quand utiliser chacune. Si vous savez que vous utiliserez la fonction plus d'une fois, créez-la normalement. Si vous ne l'utiliserez que pour un seul endroit, il est généralement préférable d'utiliser une fonction anonyme. Que vous utilisiez une fonction fléchée ou la syntaxe plus traditionnelle function dépend de vous, mais vous remarquerez que la plupart des développeurs modernes préfèrent =>.


🚀 Défi

Pouvez-vous expliquer en une phrase la différence entre les fonctions et les méthodes? Essayez!

Quiz après le cours

Quiz après le cours

Révision et auto-apprentissage

Cela vaut la peine de lire un peu plus sur les fonctions fléchées, car elles sont de plus en plus utilisées dans les bases de code. Entraînez-vous à écrire une fonction, puis à la réécrire avec cette syntaxe.

Devoir

Amusez-vous avec les fonctions

Avertissement :
Ce document a été traduit à l'aide du service de traduction automatique Co-op Translator. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous déclinons toute responsabilité en cas de malentendus ou d'interprétations erronées résultant de l'utilisation de cette traduction.