SyntaxError: missing formal parameter

Message

SyntaxError: missing formal parameter (Firefox)

Type d'erreur

Quel est le problème ?

« Formal parameter » (ou « paramètre formel ») est une façon de désigner un paramètre d'une fonction. Ici, certains des paramètres de la fonction sont invalides. Lorsqu'on déclare une fonction, les paramètres doivent être des identifiants et non des valeurs (telles que des nombres, des chaînes de caractères ou des objets). La déclaration et l'appel de la fonction forment deux étapes distinctes. Les déclarations utilisent uniquement des identifiants comme paramètres. Lorsqu'on appelle une fonction, on fournit les valeurs à utiliser.

En JavaScript, les identifiants peuvent contenir n'importe quel caractère alphanumérique (ou "$" or "_") et ne doivent pas commencer par un nombre. Un identifiant n'est pas une chaîne de caractères, une chaîne de caractères est une donnée alors qu'un identifiant fait partie du code.

Exemples

Lorsqu'on définit une fonction, les paramètres doivent être des identifiants. Aucune des fonctions suivantes ne répond à ce critère (elles lèvent donc toutes une erreur) car elles utilisent des valeurs :

js
function carre(3) {
  return nombre * nombre;
};
// SyntaxError: missing formal parameter

function salutation("Coucou") {
  return salut;
};
// SyntaxError: missing formal parameter

function log({ obj: "value"}) {
  console.log(arg)
};
// SyntaxError: missing formal parameter

Il faut utiliser des identifiants lors de la déclaration des fonctions :

js
function carre(nombre) {
  return nombre * nombre;
}

function salutation(salut) {
  return salut;
}

function log(arg) {
  console.log(arg);
}

Ensuite, on pourra appeler ces fonctions avec les arguments voulus :

js
carre(2); // 4
salutation("Coucou"); // "Coucou"
log({ obj: "value" }); // Object { obj: "value" }

Voir aussi