Sobes.tech
Intern

Quelles fonctions existent en JavaScript?

sobes.tech IA

Réponse de l'IA

En JavaScript, il existe les types de fonctions suivants:

  • Déclarations de fonctions (Function Declarations): Syntaxe de base pour définir une fonction. Elles sont hoistées lors de la compilation.

    function sayHello() {
      // Corps de la fonction
      console.log("Bonjour!");
    }
    
  • Expressions de fonctions (Function Expressions): Une fonction est assignée à une variable. Elles ne sont pas hoistées. Peuvent être nommées ou anonymes.

    const greetUser = function(name) {
      // Corps de la fonction
      console.log(`Bonjour, ${name}!`);
    };
    
  • Fonctions fléchées (Arrow Functions): Syntaxe plus concise introduite dans ES6. Ont des comportements spécifiques avec this.

    const add = (a, b) => a + b;
    
  • Méthodes d'objets (Object Methods): Fonctions définies comme propriétés d'un objet.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Fonctions génératrices (Generator Functions): Fonctions qui peuvent suspendre et reprendre leur exécution avec yield. Renvoient un itérateur.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Fonctions asynchrones (Async Functions): Fonctions qui travaillent avec des promesses et permettent d'utiliser await pour attendre la résolution des promesses.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Fonctions constructrices (Constructor Functions): Fonctions utilisées avec l'opérateur new pour créer des objets. Approche traditionnelle de la POO avant l'apparition des classes.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Fonctions de rappel (Callback Functions): Fonctions passées en argument à une autre fonction pour être exécutées à un moment donné.

    function processArray(arr, callback) {
      for (let i = 0; i < arr.length; i++) {
        callback(arr[i]);
      }
    }
    
    processArray([1, 2, 3], function(item) {
      console.log(item * 2);
    });
    
  • Expressions de fonctions immédiatement invoquées (IIFE - Immediately Invoked Function Expressions): Fonctions qui s'exécutent immédiatement après leur définition. Utilisées pour créer un scope local.

    (function() {
      // Code local
      const secret = "secret";
      console.log(secret);
    })();
    

Chaque type de fonction a ses propres caractéristiques de syntaxe, de portée (this) et de scénarios d'utilisation.