| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/function | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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 dfinir une fonction l'intrieur d'une expression.
Note :
Il est galement possible de dfinir des fonctions grce au constructeur Function et aux dclarations de fonction.
const getRectArea = function (width, height) {
return width * height;
};
console.log(getRectArea(3, 4));
// Expected output: 12
function [nom]([param1[, param2[, , paramN]]]) {
instructions
}
nomLe nom de la fonction. Peut tre omis, auquel cas on parlera d'une fonction anonyme.
paramNLe nom d'un paramtre passer la fonction.
instructionsLes instructions constituant le corps de la fonction.
Note : partir d'ES2015/ES6, on peut galement former des expressions de fonction avec des fonctions flches.
Une expression de fonction est trs similaire et a presque la mme syntaxe qu'une dclaration de fonction (consultez la page sur l'instruction function pour plus de dtails). La diffrence 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 fonction anonyme). Consultez l'article Fonctions pour des informations concernant les diffrences entre les instructions de fonctions et les expressions de fonctions. Une fonction peut tre appele immdiatement aprs sa dfinition (on parle alors de fonction invoque immdiatement ou IIFE pour Immediately Invoked Function Expression en anglais).
En JavaScript, les expressions de fonction ne sont pas remontes ( la diffrence des dclarations de fonction). Il est donc impossible d'utiliser les expressions de fonction avant leur dfinition :
nonRemonte(); // TypeError: nonRemonte is not a function
var nonRemonte = function () {
console.log("truc");
};
L'exemple qui suit dfinit une fonction anonyme et l'assigne une variable x. La fonction renvoie le carr de son paramtre :
var x = function (y) {
return y * y;
};
Si on souhaite faire rfrence une fonction au sein du corps de la fonction, il faudra crer une expression de fonction nomme. Le nom sera alors local au corps de la fonction (porte). Cela permet entre autres d'viter d'utiliser la proprit non-standard arguments.callee.
var math = {
factorielle: function factorielle(n) {
if (n <= 1) {
return 1;
}
return n * factorielle(n - 1);
},
};
La variable affecte l'expression de fonction aura une proprit name. Ce nom n'est pas modifi si la variable est raffecte. Si le nom de la fonction est absent, ce sera celui de la variable (nom implicite ). Cela vaut galement pour les fonctions flches :
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"
On peut utiliser une expression de fonction pour crer une IIFE , c'est--dire une expression de fonction qu'on appelle ds sa dfinition :
var a = "coucou";
var b = "monde";
// IIFE
(function (x, y) {
console.log(x + " " + y);
})(a, b);
// coucou monde
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-function-definitions |
Fonctions et porte des fonctionsL'objet FunctionInstruction functionInstruction function*Expression function*GeneratorFunctionasync function)async function)Cette page a t modifie le 22 mai 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |