From 844f5103992238c0c23203286dad16a466e89c97 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:09 +0200 Subject: move *.html to *.md --- .../reference/operators/function/index.html | 154 --------------------- .../reference/operators/function/index.md | 154 +++++++++++++++++++++ 2 files changed, 154 insertions(+), 154 deletions(-) delete mode 100644 files/fr/web/javascript/reference/operators/function/index.html create mode 100644 files/fr/web/javascript/reference/operators/function/index.md (limited to 'files/fr/web/javascript/reference/operators/function') diff --git a/files/fr/web/javascript/reference/operators/function/index.html b/files/fr/web/javascript/reference/operators/function/index.html deleted file mode 100644 index 83dd3e1f77..0000000000 --- a/files/fr/web/javascript/reference/operators/function/index.html +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: L'opérateur function -slug: Web/JavaScript/Reference/Operators/function -tags: - - Function - - JavaScript - - Operator - - Reference -translation_of: Web/JavaScript/Reference/Operators/function -original_slug: Web/JavaScript/Reference/Opérateurs/L_opérateur_function ---- -
{{jsSidebar("Operators")}}
- -

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 constructeur Function et aux déclarations de fonction.

-
- -
{{EmbedInteractiveExample("pages/js/expressions-functionexpression.html")}}
- -

Syntaxe

- -
function [nom]([param1[, param2[, ..., paramN]]]) {
-   instructions
-}
- -

Paramètres

- -
-
nom
-
Le nom de la fonction. Peut être omis, auquel cas on parlera d'une fonction anonyme.
-
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 avec des 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'instruction function 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 fonction anonyme). Consultez l'article Fonctions pour des informations concernant les différences entre les instructions de fonctions et les expressions de fonctions. Une fonction peut être appelée immédiatement après sa définition (on parle alors de fonction invoquée immédiatement ou IIFE pour Immediately 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 :

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

Exemples

- -

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

- -
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-standard arguments.callee.

- -
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 pour les fonctions fléchées :

- -
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 pour Immediately 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 :

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

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-function-definitions', 'Définitions de fonction')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-13', 'Définitions de fonction')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-13', 'Définitions de fonction')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.5.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.operators.function")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/operators/function/index.md b/files/fr/web/javascript/reference/operators/function/index.md new file mode 100644 index 0000000000..83dd3e1f77 --- /dev/null +++ b/files/fr/web/javascript/reference/operators/function/index.md @@ -0,0 +1,154 @@ +--- +title: L'opérateur function +slug: Web/JavaScript/Reference/Operators/function +tags: + - Function + - JavaScript + - Operator + - Reference +translation_of: Web/JavaScript/Reference/Operators/function +original_slug: Web/JavaScript/Reference/Opérateurs/L_opérateur_function +--- +
{{jsSidebar("Operators")}}
+ +

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 constructeur Function et aux déclarations de fonction.

+
+ +
{{EmbedInteractiveExample("pages/js/expressions-functionexpression.html")}}
+ +

Syntaxe

+ +
function [nom]([param1[, param2[, ..., paramN]]]) {
+   instructions
+}
+ +

Paramètres

+ +
+
nom
+
Le nom de la fonction. Peut être omis, auquel cas on parlera d'une fonction anonyme.
+
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 avec des 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'instruction function 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 fonction anonyme). Consultez l'article Fonctions pour des informations concernant les différences entre les instructions de fonctions et les expressions de fonctions. Une fonction peut être appelée immédiatement après sa définition (on parle alors de fonction invoquée immédiatement ou IIFE pour Immediately 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 :

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

Exemples

+ +

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

+ +
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-standard arguments.callee.

+ +
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 pour les fonctions fléchées :

+ +
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 pour Immediately 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 :

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

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-function-definitions', 'Définitions de fonction')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-13', 'Définitions de fonction')}}{{Spec2('ES5.1')}} 
{{SpecName('ES3', '#sec-13', 'Définitions de fonction')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.5.
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.operators.function")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf