--- title: 'SyntaxError: missing formal parameter' slug: Web/JavaScript/Reference/Errors/Missing_formal_parameter translation_of: Web/JavaScript/Reference/Errors/Missing_formal_parameter ---
SyntaxError: missing formal parameter (Firefox)
{{jsxref("SyntaxError")}}
"Formal parameter" es una forma adornada de decir "parámetro de función". Tu declaración de funcion carece de parámetros válidos. En la declaración de la función, los parámetros deben ser {{Glossary("Identifier", "identifiers")}}, no ningún valor cómo números, cadenas, o objetos. Declarar las funciones y invocarlas son dos pasos distindos. La declaración sólo requiere identificador/es. Es en la invocación que asignas los valores.
En {{glossary("JavaScript")}}, los indentificadosres sólo pueden contener carácteres alfanuméricos (o "$" y "_"), no pueden comenzar por número. Un identificador difiere de una cadena en que la cadena son datos, mientras que lo primero es parte del código.
Los parámetros de función deben ser identificadores cuando creas la función. Todas estas declaraciones fallan, ya que proveen parámetros:
function square(3) { return number * number; }; // SyntaxError: missing formal parameter function greet("Howdy") { return greeting; }; // SyntaxError: missing formal parameter function log({ obj: "value"}) { console.log(arg) }; // SyntaxError: missing formal parameter
Necesitarás usar identificadores en las funciones:
function square(number) { return number * number; }; function greet(greeting) { return greeting; }; function log(arg) { console.log(arg) };
Entonces podrás invocarlas con argumentos a tu gusto:
square(2); // 4 greet("Howdy"); // "Howdy" log({obj: "value"}); // Object { obj: "value" }