aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/javascript/reference/operators/index.html
blob: 35e6f1530f81eadd8f90fb761d1ccdf67656672b (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
---
title: Expresiones y operadores
slug: Web/JavaScript/Reference/Operators
tags:
  - Descripción
  - JavaScript
  - Operadores
  - Operators
  - Referencia
translation_of: Web/JavaScript/Reference/Operators
original_slug: Web/JavaScript/Referencia/Operadores
---
<div>{{jsSidebar("Operators", "Operadores")}}</div>

<p class="summary">Este capítulo documenta todos los operadores, expresiones y palabras clave del lenguaje JavaScript.</p>

<h2 id="Expresiones_y_operadores_por_categoría">Expresiones y operadores por categoría</h2>

<p>Para obtener una lista alfabética, consulta la barra lateral de la izquierda.</p>

<h3 id="Expresiones_primarias">Expresiones primarias</h3>

<p>Palabras clave básicas y expresiones generales en JavaScript.</p>

<dl>
 <dt>{{jsxref("Operators/this", "this")}}</dt>
 <dd>La palabra clave <code>this</code> se refiere a una propiedad especial de un contexto de ejecución.</dd>
 <dt>{{jsxref("Operators/function", "function")}}</dt>
 <dd>La palabra clave <code>function</code> define una expresión de función.</dd>
 <dt>{{jsxref("Operators/class", "class")}}</dt>
 <dd>La palabra clave <code>class</code> define una expresión de clase.</dd>
 <dt>{{jsxref("Operators/function", "function")}}</dt>
 <dd>La palabra clave <code>function*</code> define una expresión de función generadora.</dd>
 <dt>{{jsxref("Operators/yield", "yield")}}</dt>
 <dd>Pausar y reanudar una función generadora.</dd>
 <dt>{{jsxref("Operators/yield*", "yield*")}}</dt>
 <dd>Delegar a otra función generadora u objeto iterable.</dd>
 <dt>{{jsxref("Operators/async_function", "async function")}}</dt>
 <dd>La <code>async function</code> define una expresión de función asíncrona.</dd>
 <dt>{{jsxref("Operators/await", "await")}}</dt>
 <dd>Pausa y reanuda una función asíncrona y espera la resolución/rechazo de la promesa.</dd>
 <dt>{{jsxref("Global_Objects/Array", "[]")}}</dt>
 <dd>Iniciador de arreglo/sintaxis literal.</dd>
 <dt>{{jsxref("Operators/Object_initializer", "{}")}}</dt>
 <dd>Iniciador de objeto/sintaxis literal.</dd>
 <dt>{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}</dt>
 <dd>Sintaxis de expresión regular literal.</dd>
 <dt>{{jsxref("Operators/Grouping", "( )")}}</dt>
 <dd>Operador de agrupación.</dd>
</dl>

<h3 id="Expresiones_del_lado_izquierdo">Expresiones del lado izquierdo</h3>

<p>Los valores de la izquierda son el destino de una asignación.</p>

<dl>
 <dt>{{jsxref("Operators/Property_accessors", "Propiedad accessors", "", 1)}}</dt>
 <dd>Los operadores miembro proporcionan acceso a una propiedad o método de un objeto<br>
 (<code>object.property</code> y <code>object["property"]</code>).</dd>
 <dt>{{jsxref("Operators/new", "new")}}</dt>
 <dd>El operador <code>new</code> crea una instancia auxiliado por un constructor.</dd>
 <dt>{{jsxref("Operators/new%2Etarget", "new.target")}}</dt>
 <dd>En los constructores, <code>new.target</code> se refiere al constructor que fue invocado por {{jsxref("Operators/new", "new")}}.</dd>
 <dt>{{jsxref("Operators/super", "super")}}</dt>
 <dd>La palabra clave <code>super</code> llama al constructor padre.</dd>
 <dt>{{jsxref("Operators/Spread_syntax", "...obj")}}</dt>
 <dd>La sintaxis de extensión permite expandir una expresión en lugares donde se esperan múltiples argumentos (para llamadas a funciones) o múltiples elementos (para arreglos literales).</dd>
</dl>

<h3 id="Incremento_y_decremento">Incremento y decremento</h3>

<p>Operadores de incremento sufijo/prefijo y decremento sufijo/prefijo.</p>

<dl>
 <dt>{{jsxref("Operators/Increment", "A++")}}</dt>
 <dd>Operador de incremento sufijo.</dd>
 <dt>{{jsxref("Operators/Decrement", "A--")}}</dt>
 <dd>Operador de incremento sufijo.</dd>
 <dt>{{jsxref("Operators/Increment", "++A")}}</dt>
 <dd>Operador de incremento prefijo.</dd>
 <dt>{{jsxref("Operators/Decrement", "--A")}}</dt>
 <dd>Operador de decremento prefijo.</dd>
</dl>

<h3 id="Operadores_unarios">Operadores unarios</h3>

<p>Una operación unaria es una operación con un solo operando.</p>

<dl>
 <dt>{{jsxref("Operators/delete", "delete")}}</dt>
 <dd>El operador <code>delete</code> elimina una propiedad de un objeto.</dd>
 <dt>{{jsxref("Operators/void", "void")}}</dt>
 <dd>El operador <code>void</code> descarta el valor de retorno de una expresión.</dd>
 <dt>{{jsxref("Operators/typeof", "typeof")}}</dt>
 <dd>El operador <code>typeof</code> determina el tipo de un objeto dado.</dd>
 <dt>{{jsxref("Operators/Unary_plus", "+")}}</dt>
 <dd>El operador unario <code>más</code> convierte su operando al tipo <code>Number</code>.</dd>
 <dt>{{jsxref("Operators/Unary_negation", "-")}}</dt>
 <dd>El operador unario de negación convierte su operando al tipo <code>Number</code> y luego lo niega.</dd>
 <dt>{{jsxref("Operators/Bitwise_NOT", "~")}}</dt>
 <dd>Operador <code>NOT</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Logical_NOT", "!")}}</dt>
 <dd>Operador <code>NOT</code> lógico.</dd>
</dl>

<h3 id="Operadores_aritméticos">Operadores aritméticos</h3>

<p>Los operadores aritméticos toman valores numéricos (ya sean literales o variables) como sus operandos y devuelven un solo valor numérico.</p>

<dl>
 <dt>{{jsxref("Operators/Addition", "+")}}</dt>
 <dd>Operador de adición o suma.</dd>
 <dt>{{jsxref("Operators/Subtraction", "-")}}</dt>
 <dd>Operador de sustracción o resta.</dd>
 <dt>{{jsxref("Operators/Division", "/")}}</dt>
 <dd>Operador de división.</dd>
 <dt>{{jsxref("Operators/Multiplication", "*")}}</dt>
 <dd>Operador de multiplicación.</dd>
 <dt>{{jsxref("Operators/Remainder", "%")}}</dt>
 <dd>Operador de residuo.</dd>
 <dt>{{jsxref("Operators/Exponentiation", "**")}}</dt>
 <dd>Operador de exponenciación.</dd>
</dl>

<h3 id="Operadores_relacionales">Operadores relacionales</h3>

<p>Un operador de comparación compara sus operandos y devuelve un valor <code>Boolean</code> basado en si la comparación es verdadera o no.</p>

<dl>
 <dt>{{jsxref("Operators/in", "in")}}</dt>
 <dd>El operador <code>in</code> determina si un objeto tiene una determinada propiedad.</dd>
 <dt>{{jsxref("Operators/instanceof", "instanceof")}}</dt>
 <dd>El operador <code>instanceof</code> determina si un objeto es una instancia de otro objeto.</dd>
 <dt>{{jsxref("Operators/Less_than", "&lt;")}}</dt>
 <dd>Operador menor que.</dd>
 <dt>{{jsxref("Operators/Greater_than", "&gt;")}}</dt>
 <dd>Operador mayor que.</dd>
 <dt>{{jsxref("Operators/Less_than_or_equal", "&lt;=")}}</dt>
 <dd>Operador menor o igual a.</dd>
 <dt>{{jsxref("Operators/Greater_than_or_equal", "&gt;=")}}</dt>
 <dd>Operador mayor o igual a.</dd>
</dl>

<div class="blockIndicator note">
<p><strong>Nota: =&gt;</strong> no es un operador, sino la notación para {{jsxref("Functions/Arrow_functions", "Funciones de flecha")}}.</p>
</div>

<h3 id="Operadores_de_igualdad">Operadores de igualdad</h3>

<p>El resultado de evaluar un operador de igualdad siempre es de tipo <code>Boolean</code> basado en si la comparación es verdadera.</p>

<dl>
 <dt>{{jsxref("Operators/Equality", "==")}}</dt>
 <dd>Operador de igualdad.</dd>
 <dt>{{jsxref("Operators/Inequality", "!=")}}</dt>
 <dd>Operador de desigualdad.</dd>
 <dt>{{jsxref("Operators/Strict_equality", "===")}}</dt>
 <dd>Operador de igualdad estricta.</dd>
 <dt>{{jsxref("Operators/Strict_inequality", "!==")}}</dt>
 <dd>Operador de desigualdad estricta.</dd>
</dl>

<h3 id="Operadores_de_desplazamiento_de_bits">Operadores de desplazamiento de bits</h3>

<p>Operaciones para cambiar todos los bits del operando.</p>

<dl>
 <dt>{{jsxref("Operators/Left_shift", "&lt;&lt;")}}</dt>
 <dd>Operador de desplazamiento bit a bit a la izquierda.</dd>
 <dt>{{jsxref("Operators/Right_shift", "&gt;&gt;")}}</dt>
 <dd>Operador de desplazamiento bit a bit a la derecha.</dd>
 <dt>{{jsxref("Operators/Unsigned_right_shift", "&gt;&gt;&gt;")}}</dt>
 <dd>Operador de desplazamiento bit a bit a la derecha sin signo.</dd>
</dl>

<h3 id="Operadores_binarios_bit_a_bit">Operadores binarios bit a bit</h3>

<p>Los operadores bit a bit tratan a sus operandos como un conjunto de 32 bits (ceros y unos) y devuelven valores numéricos estándar de JavaScript.</p>

<dl>
 <dt>{{jsxref("Operators/Bitwise_AND", "&amp;")}}</dt>
 <dd><code>AND</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Bitwise_OR", "|")}}</dt>
 <dd><code>OR</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Bitwise_XOR", "^")}}</dt>
 <dd><code>XOR</code> bit a bit.</dd>
</dl>

<h3 id="Operadores_lógicos_binarios">Operadores lógicos binarios</h3>

<p>Los operadores lógicos se utilizan normalmente con valores booleanos (lógicos); cuando lo son, devuelven un valor booleano.</p>

<dl>
 <dt>{{jsxref("Operators/Logical_AND", "&amp;&amp;")}}</dt>
 <dd><code>AND</code> lógico.</dd>
 <dt>{{jsxref("Operators/Logical_OR", "||")}}</dt>
 <dd><code>OR</code> lógico.</dd>
</dl>

<h3 id="Operador_condicional_ternario">Operador condicional (ternario)</h3>

<dl>
 <dt>{{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}</dt>
 <dd>
 <p>El operador condicional devuelve uno de dos valores según el valor lógico de la condición.</p>
 </dd>
</dl>

<h3 id="Operadores_de_asignación">Operadores de asignación</h3>

<p>Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho.</p>

<dl>
 <dt>{{jsxref("Operators/Assignment", "=")}}</dt>
 <dd>Operador de asignación.</dd>
 <dt>{{jsxref("Operators/Multiplication_assignment", "*=")}}</dt>
 <dd>Asignación de multiplicación.</dd>
 <dt>{{jsxref("Operators/Division_assignment", "/=")}}</dt>
 <dd>Asignación de división.</dd>
 <dt>{{jsxref("Operators/Remainder_assignment", "%=")}}</dt>
 <dd>Asignación de residuo.</dd>
 <dt>{{jsxref("Operators/Addition_assignment", "+=")}}</dt>
 <dd>Asignación de suma.</dd>
 <dt>{{jsxref("Operators/Subtraction_assignment", "-=")}}</dt>
 <dd>Asignación de sustracción</dd>
 <dt>{{jsxref("Operators/Left_shift_assignment", "&lt;&lt;=")}}</dt>
 <dd>Asignación de desplazamiento a la izquierda.</dd>
 <dt>{{jsxref("Operators/Right_shift_assignment", "&gt;&gt;=")}}</dt>
 <dd>Asignación de desplazamiento a la derecha.</dd>
 <dt>{{jsxref("Operators/Unsigned_right_shift_assignment", "&gt;&gt;&gt;=")}}</dt>
 <dd>Asignación de desplazamiento a la derecha sin signo.</dd>
 <dt>{{jsxref("Operators/Bitwise_AND_assignment", "&amp;=")}}</dt>
 <dd>Asignación de <code>AND</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Bitwise_XOR_assignment", "^=")}}</dt>
 <dd>Asignación de <code>XOR</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Bitwise_OR_assignment", "|=")}}</dt>
 <dd>Asignación de <code>OR</code> bit a bit.</dd>
 <dt>{{jsxref("Operators/Logical_AND_assignment", "&amp;&amp;=")}}</dt>
 <dd>Asignación de <code>AND</code> lógico.</dd>
 <dt>{{jsxref("Operators/Logical_OR_assignment", "||=")}}</dt>
 <dd>Asignación de <code>OR</code> lógico.</dd>
 <dt>{{jsxref("Operators/Logical_nullish_assignment", "??=")}}</dt>
 <dd>Asignación de anulación lógica.</dd>
 <dt>{{jsxref("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}<br>
 {{jsxref("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}</dt>
 <dd>
 <p>La desestructuración te permite asignar las propiedades de un arreglo u objeto a variables utilizando una sintaxis que se parece a los arreglos u objetos literales.</p>
 </dd>
</dl>

<h3 id="Operador_coma">Operador coma</h3>

<dl>
 <dt>{{jsxref("Operators/Comma_Operator", ",")}}</dt>
 <dd>El operador <code>coma</code> permite evaluar múltiples expresiones en una sola declaración y devuelve el resultado de la última expresión.</dd>
</dl>

<h2 id="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilidad_del_navegador">Compatibilidad del navegador</h2>



<p>{{Compat("javascript.operators")}}</p>

<h2 id="Ve_también">Ve también</h2>

<ul>
 <li>{{jsxref("Operators/Operator_Precedence", "Operator de precedencia")}}</li>
</ul>