Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Expressions et opérateurs
  5. L'opérateur function

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

L'opérateur function

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

Le mot-cléfunction permet de définir une fonction à l'intérieur d'une expression.

Note :Il est également possible de définir des fonctions grâce au constructeurFunction et auxdéclarations de fonction.

Exemple interactif

const getRectArea = function (width, height) {  return width * height;};console.log(getRectArea(3, 4));// Expected output: 12

Syntaxe

js
function [nom]([param1[, param2[, …, paramN]]]) {  instructions}

Paramètres

nom

Le nom de la fonction. Peut être omis, auquel cas on parlera d'une fonctionanonyme.

paramN

Le nom d'un paramètre à passer à la fonction.

instructions

Les instructions constituant le corps de la fonction.

Note :À partir d'ES2015/ES6, on peut également former des expressions de fonction avecdes fonctions fléchées.

Description

Une expression de fonction est très similaire et a presque la même syntaxe qu'une déclaration de fonction (consultez la page sur l'instructionfunction pour plus de détails). La différence principale entre une expression de fonction et une instruction est le nom de la fonction. En effet, pour les expressions, celui peut être omis (on parle alors d'une fonctionanonyme). Consultez l'articleFonctions pour des informations concernant les différences entre les instructions de fonctions et les expressions de fonctions. Une fonction peut être appeléeimmédiatement après sa définition (on parle alors de fonction invoquée immédiatement ouIIFE pourImmediately Invoked Function Expression en anglais).

Remontée (hoisting) des expressions de fonction

En JavaScript, les expressions de fonction ne sont pas remontées (à la différence des déclarations de fonction). Il est donc impossible d'utiliser les expressions de fonction avant leur définition :

js
nonRemontée(); // TypeError: nonRemontée is not a functionvar nonRemontée = function () {  console.log("truc");};

Exemples

L'exemple qui suit définit une fonction anonyme et l'assigne à une variablex. La fonction renvoie le carré de son paramètre :

js
var x = function (y) {  return y * y;};

Expression nommée

Si on souhaite faire référence à une fonction au sein du corps de la fonction, il faudra créer une expression de fonction nommée. Le nom sera alors local au corps de la fonction (portée). Cela permet entre autres d'éviter d'utiliser la propriété non-standardarguments.callee.

js
var math = {  factorielle: function factorielle(n) {    if (n <= 1) {      return 1;    }    return n * factorielle(n - 1);  },};

La variable affectée à l'expression de fonction aura une propriéténame. Ce nom n'est pas modifié si la variable est réaffectée. Si le nom de la fonction est absent, ce sera celui de la variable (nom « implicite »). Cela vaut également pourles fonctions fléchées :

js
var toto = function () {};console.log(toto.name); // "toto"var toto2 = toto;console.log(toto2.name); // "toto"var truc = function machin() {};console.log(truc.name); // "machin"

IIFE pourImmediately Invoked Function Expression ou expression de fonction immédiatement appelée

On peut utiliser une expression de fonction pour créer une « IIFE », c'est-à-dire une expression de fonction qu'on appelle dès sa définition :

js
var a = "coucou";var b = "monde";// IIFE(function (x, y) {  console.log(x + " " + y);})(a, b);// coucou monde

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-function-definitions

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp