From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../errors/unnamed_function_statement/index.html | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 files/fr/web/javascript/reference/errors/unnamed_function_statement/index.html (limited to 'files/fr/web/javascript/reference/errors/unnamed_function_statement') diff --git a/files/fr/web/javascript/reference/errors/unnamed_function_statement/index.html b/files/fr/web/javascript/reference/errors/unnamed_function_statement/index.html new file mode 100644 index 0000000000..690e4b3f3e --- /dev/null +++ b/files/fr/web/javascript/reference/errors/unnamed_function_statement/index.html @@ -0,0 +1,115 @@ +--- +title: 'SyntaxError: function statement requires a name' +slug: Web/JavaScript/Reference/Erreurs/Unnamed_function_statement +tags: + - Erreurs + - JavaScript + - SyntaxError +translation_of: Web/JavaScript/Reference/Errors/Unnamed_function_statement +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
Syntax Error: Expected identifier (Edge)
+SyntaxError: function statement requires a name [Firefox]
+SyntaxError: Unexpected token ( [Chrome]
+
+ +

Type d'erreur

+ +

{{jsxref("SyntaxError")}}

+ +

Quel est le problème ?

+ +

Une déclaration de fonction présente dans le code requiert un nom. Il faut alors vérifier la façon dont la fonction est définie et s'il est nécessaire de lui fournir un nom ou si la fonction en question est une expression de fonction, une fonction immédiatement invoquée ou si le code de la fonction est simplement bien placé dans son contexte.

+ +

Exemples

+ +

Déclaration / Expression

+ +

Une déclaration de fonction requiert un nom. Le fragment de code suivant ne fonctionnera pas :

+ +
function () {
+  return 'Coucou monde :)';
+}
+// SyntaxError: function statement requires a name
+
+ +

On peut utiliser une expression de fonction à la place :

+ +
var salutations = function() {
+  return 'Coucou monde :)';
+};
+ +

Si la fonction devait être appelé immédiatement, il suffit d'ajouter des parenthèses autour :

+ +
(function () {
+
+})();
+ +

Fonctions étiquetées

+ +

Si vous utilisez des fonctions étiquetées, il faut toujours fournir un nom après le mot-clé function. Le code suivant ne fonctionnera pas :

+ +
function Greeter() {
+  german: function () {
+    return "Moin";
+  }
+}
+// SyntaxError: function statement requires a name
+
+ +

En revanche, ceci fonctionnera :

+ +
function Greeter() {
+  german: function g() {
+    return "Moin";
+  }
+}
+ +

Méthodes d'un objet

+ +

Si vous souhaitez construire une méthode d'un objet, il faudra d'abord créer l'objet. Dans ce cas, la syntaxe sans le nom après le mot-clé function sera valide :

+ +
var greeter = {
+  german: function () {
+    return "Moin";
+  }
+};
+ +

Syntaxe et fonctions de rappel (callbacks)

+ +

Lorsqu'on utilise les callbacks, il est facile de s'emmêler les pinceaux entre les parenthèses et les virgules :

+ +
promise.then(
+  function() {
+    console.log("success");
+  });
+  function() {
+    console.log("error");
+}
+// SyntaxError: function statement requires a name
+
+ +

La forme correcte serait :

+ +
promise.then(
+  function() {
+    console.log("success");
+  },
+  function() {
+    console.log("error");
+  }
+);
+
+ +

Voir aussi

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