SyntaxError: missing } after function body

Message

SyntaxError: Expected '}' (Edge)
SyntaxError: missing } after function body (Firefox)

Type d'erreur

Quel est le problème ?

Il y a une erreur de syntaxe près d'une création de fonction. Dans ce cas, il est préférable de vérifier que les parenthèses et accolades fermantes sont bien présentes et dans le bon ordre. Indenter et formater le code peut vous aider à vous y retrouver parmi les éventuels différents niveaux d'imbrication.

Exemples

Oubli d'une accolade fermante

La plupart du temps, il s'agit d'une accolade manquante dans le code de la fonction :

js
var charge = function() {
  if (soleil) {
    utiliserPanneauSolaire();
  } else {
    utiliserVelo();
};

La forme correcte est :

js
var charge = function () {
  if (soleil) {
    utiliserPanneauSolaire();
  } else {
    utiliserVelo();
  }
};

Une erreur de ce type peut être moins visible lorsqu'on utilise les fonctions qui sont appelées immédiatement, les fermetures ou d'autres formes qui utilisent de nombreuses parenthèses et/ou accolades comme par exemple :

js
(function() { if (true) { return false; } );

Généralement, mettre en forme et vérifier l'indentation permet de repérer ces erreurs.

js
(function () {
  if (true) {
    return false;
  }
});

Voir aussi