aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/javascript/reference/errors/missing_formal_parameter/index.html
blob: 8ea7e3684a0371ea15ccc7d4d57d327aabad8093 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
title: 'SyntaxError: missing formal parameter'
slug: Web/JavaScript/Reference/Errors/Missing_formal_parameter
translation_of: Web/JavaScript/Reference/Errors/Missing_formal_parameter
---
<div>{{jsSidebar("Errors")}}</div>

<h2 id="Mensaje">Mensaje</h2>

<pre class="syntaxbox">SyntaxError: missing formal parameter (Firefox)
</pre>

<h2 id="Tipo_de_error">Tipo de error</h2>

<p>{{jsxref("SyntaxError")}}</p>

<h2 id="¿Que_es_lo_que_fue_mal">¿Que es lo que fue mal?</h2>

<p>"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.</p>

<p>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 <strong>cadena</strong> en que la cadena son datos, mientras que lo primero es parte del código.</p>

<h2 id="Ejemplos">Ejemplos</h2>

<p>Los parámetros de función deben ser identificadores cuando creas la función. Todas estas declaraciones fallan, ya que proveen parámetros:</p>

<pre class="brush: js example-bad highlight:[1,6,11]">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
</pre>

<p>Necesitarás usar identificadores en las funciones:</p>

<pre class="brush: js example-good highlight:[1,5,9]">function square(number) {
  return number * number;
};

function greet(greeting) {
  return greeting;
};

function log(arg) {
  console.log(arg)
};</pre>

<p>Entonces podrás invocarlas con argumentos a tu gusto:</p>

<pre class="brush: js">square(2); // 4

greet("Howdy"); // "Howdy"

log({obj: "value"}); // Object { obj: "value" }
</pre>

<h2 id="También_interesante">También interesante</h2>

<ul>
 <li>Otros errores relacionados con parámetros formales:
  <ul>
   <li><a href="/en-US/docs/Web/JavaScript/Reference/Errors/Malformed_formal_parameter">SyntaxError: Malformed formal parameter</a></li>
   <li><a href="/en-US/docs/Web/JavaScript/Reference/Errors/Redeclared_parameter">SyntaxError: redeclaration of formal parameter "x"</a></li>
  </ul>
 </li>
</ul>