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
282
|
---
title: Expressions and operators
slug: Web/JavaScript/Referencia/Operadors
tags:
- JavaScript
- NeedsTranslation
- Operators
- TopicStub
translation_of: Web/JavaScript/Reference/Operators
---
<div>{{jsSidebar("Operators")}}</div>
<p>Aquest capítol documenta totls els operadors, expressions i paraules clau del llenguatge JavaScript.</p>
<h2 id="Expressions_i_operadors_per_categoria">Expressions i operadors per categoria</h2>
<p>Per a un llistat en order alfabetic vegeu el menú de l'esquerra.</p>
<h3 id="Expressions_primàries">Expressions primàries</h3>
<p>Paraules clau bàsiques i expressions generals en JavaScript.</p>
<dl>
<dt>{{jsxref("Operadors/this", "this")}}</dt>
<dd>La paraula clau <code>this</code> fa referència al contexte d'execució de la funció actual.</dd>
<dt>{{jsxref("Operadors/function", "function")}}</dt>
<dd>La paraula clau <code>function</code> defineix una expressió de funció.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/function*", "function*")}}</dt>
<dd>La paraula clau <code>function*</code> defineix una expressió de funció generadora.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/yield", "yield")}}</dt>
<dd>Pausa i resumeix una funció generadora.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/yield*", "yield*")}}</dt>
<dd>Delega a una altra funció generadora o objecte iterable.</dd>
<dt>{{jsxref("Global_Objects/Array", "[]")}}</dt>
<dd>Sintaxi d'inicialització o literal d'arrays.</dd>
<dt>{{jsxref("Operators/Object_initializer", "{}")}}</dt>
<dd>Sintaxi d'inicialitzador o literal d'objectes.</dd>
<dt>{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}</dt>
<dd>Sintaxi de literals formats per expressions regulars.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/Array_comprehensions", "[for (x of y) x]")}}</dt>
<dd>Comprensió d'arrays.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/Generator_comprehensions", "(for (x of y) y)")}}</dt>
<dd>Comprensió de generators.</dd>
<dt>{{jsxref("Operadors/Grouping", "( )")}}</dt>
<dd>Operador d'agrupament.</dd>
</dl>
<h3 id="Expressions_de_banda_esquerra">Expressions de banda esquerra</h3>
<p>Els valors de l'esquerra són la destinació d'una assignació.</p>
<dl>
<dt>{{jsxref("Operadors/Property_accessors", "Property accessors", "", 1)}}</dt>
<dd>Els operadors membres proporcionen accés a una propietat o mètode d'un objecte<br>
(<code>object.property</code> i <code>object["property"]</code>).</dd>
<dt>{{jsxref("Operadors/new", "new")}}</dt>
<dd>L'operador <code>new</code> crea una instància d'un constructor.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/super", "super")}}</dt>
<dd>La paraula clau <code>super</code> crida el constructor de l'objecte pare.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/Spread_operator", "...obj")}}</dt>
<dd>L'operador d'extensió permet que una expressió s'expandeixi en llocs on s'esperen mútiples argurments (per a crides de funcions) o elements (per a literals d'arrays).</dd>
</dl>
<h3 id="Increment_i_decrement">Increment i decrement</h3>
<p>Operadors de increment o decrement en forma de prefix/sufix.</p>
<dl>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "A++", "#Increment")}}</dt>
<dd>Operador sufix d'increment.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "A--", "#Decrement")}}</dt>
<dd>Operador sufix de decrement.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "++A", "#Increment")}}</dt>
<dd>Operador prefix d'increment.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "--A", "#Decrement")}}</dt>
<dd>Operador prefix de decrement.</dd>
</dl>
<h3 id="Operadors_unaris">Operadors unaris</h3>
<p>Un operador unari és un operador que només accepta un operand.</p>
<dl>
<dt>{{jsxref("Operadors/delete", "delete")}}</dt>
<dd>L'operador <code>delete</code> esborra una propietat d'un objecte.</dd>
<dt>{{jsxref("Operadors/void", "void")}}</dt>
<dd>L'operador <code>void</code> evalua una expressió i descarta el que retorni.</dd>
<dt>{{jsxref("Operadors/typeof", "typeof")}}</dt>
<dd>L'operador <code>typeof</code> determina el tipus d'un objecte donat.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "+", "#Unary_plus")}}</dt>
<dd>L'operador unari més converteix l'operand donat al tipus Number.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "-", "#Unary_negation")}}</dt>
<dd>L'operador unari negació converteix l'operand donat al tipus Number i llavors el nega.</dd>
<dt>{{jsxref("Operadors/Bitwise_Operators", "~", "#Bitwise_NOT")}}</dt>
<dd>Operador binari NOT.</dd>
<dt>{{jsxref("Operadors/Logical_Operators", "!", "#Logical_NOT")}}</dt>
<dd>Operador lògic NOT.</dd>
</dl>
<h3 id="Operadors_aritmètics">Operadors aritmètics</h3>
<p>Els operadors aritmètics accepten valors numèrics (ja siguin literals o variables) com a operands i retornen un únic valor numèric.</p>
<dl>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "+", "#Addition")}}</dt>
<dd>Operador de suma.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "-", "#Subtraction")}}</dt>
<dd>Operador de resta.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "/", "#Division")}}</dt>
<dd>Operador de divisió.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "*", "#Multiplication")}}</dt>
<dd>Operador de multiplicació.</dd>
<dt>{{jsxref("Operadors/Arithmetic_Operators", "%", "#Remainder")}}</dt>
<dd>Operador de mòdul.</dd>
</dl>
<h3 id="Operadors_relacionals">Operadors relacionals</h3>
<p>Els operadors relacionals compara els operands donats i retorna un valor de tipus <code>Boolean</code> value basat en si la relació és certa o no.</p>
<dl>
<dt>{{jsxref("Operadors/in", "in")}}</dt>
<dd>L'operador <code>in</code> determina si un objecte té la propietat donada.</dd>
<dt>{{jsxref("Operadors/instanceof", "instanceof")}}</dt>
<dd>L'operador <code>instanceof</code> determina si un objecte és una instància d'un altre objecte.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", "<", "#Less_than_operator")}}</dt>
<dd>Operador menor que.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", ">", "#Greater_than_operator")}}</dt>
<dd>Operador major que.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}</dt>
<dd>Operador menor o igual que.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}</dt>
<dd>Operador major o igual que.</dd>
</dl>
<h3 id="Operadors_d'igualtat">Operadors d'igualtat</h3>
<p>El resultat d'evaluar un operador d'igualtat és sempre de tipus <code>Boolean</code> i el resultat es basa en si la comparació és certa.</p>
<dl>
<dt>{{jsxref("Operadors/Comparison_Operators", "==", "#Equality")}}</dt>
<dd>Operador d'igulatat.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", "!=", "#Inequality")}}</dt>
<dd>Operador de no igualtat.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", "===", "#Identity")}}</dt>
<dd>Operador identitat.</dd>
<dt>{{jsxref("Operadors/Comparison_Operators", "!==", "#Nonidentity")}}</dt>
<dd>Operador de no identitat.</dd>
</dl>
<h3 id="Operadors_de_desplaçament_de_bits">Operadors de desplaçament de bits</h3>
<p>Operacions que desplacen tots els bits d'un operand.</p>
<dl>
<dt>{{jsxref("Operadors/Bitwise_Operators", "<<", "#Left_shift")}}</dt>
<dd>Operador de desplaçament de bits a l'esquerra.</dd>
<dt>{{jsxref("Operadors/Bitwise_Operators", ">>", "#Right_shift")}}</dt>
<dd>Operador de desplaçament de bits a la dreta.</dd>
<dt>{{jsxref("Operadors/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}</dt>
<dd>Operador de desplaçament a la dreta sense signe.</dd>
</dl>
<h3 id="Operadors_binaris">Operadors binaris</h3>
<p>Els operadors binaris tracten els seus operands com un conjunt de 32 bits (uns i zeros) i retornen valors numèrics standards de JavaScript.</p>
<dl>
<dt>{{jsxref("Operadors/Bitwise_Operators", "&", "#Bitwise_AND")}}</dt>
<dd>AND binari.</dd>
<dt>{{jsxref("Operadors/Bitwise_Operators", "|", "#Bitwise_OR")}}</dt>
<dd>OR binari.</dd>
<dt>{{jsxref("Operadors/Bitwise_Operators", "^", "#Bitwise_XOR")}}</dt>
<dd>XOR binari.</dd>
</dl>
<h3 id="Operadors_lògics">Operadors lògics</h3>
<p>Els operadors lògics típicament s'utilitzen amb valors booleans (és a dir, logics) i retornen un valor booleà.</p>
<dl>
<dt>{{jsxref("Operadors/Logical_Operators", "&&", "#Logical_AND")}}</dt>
<dd>AND lògic.</dd>
<dt>{{jsxref("Operadors/Logical_Operators", "||", "#Logical_OR")}}</dt>
<dd>OR lògic.</dd>
</dl>
<h3 id="Operador_condicional_(ternari)">Operador condicional (ternari)</h3>
<dl>
<dt>{{jsxref("Operadors/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}</dt>
<dd>
<p>L'operador condicional retorna un dels dos valors basat en l'evaluació lògica de la condició.</p>
</dd>
</dl>
<h3 id="Operadors_d'assignació">Operadors d'assignació</h3>
<p>Els operadors d'assignació asignen un valor a l'operand de l'esquerra basant-se en l'evaluació de l'operand de la dreta.</p>
<dl>
<dt>{{jsxref("Operadors/Assignment_Operators", "=", "#Assignment")}}</dt>
<dd>Operador d'assignació.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "*=", "#Multiplication_assignment")}}</dt>
<dd>Assignació de la multiplicació.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "/=", "#Division_assignment")}}</dt>
<dd>Assignació de la divisó.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "%=", "#Remainder_assignment")}}</dt>
<dd>Assignació del mòdul.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "+=", "#Addition_assignment")}}</dt>
<dd>Assignació de la suma.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "-=", "#Subtraction_assignment")}}</dt>
<dd>Assignació de la resta.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "<<=", "#Left_shift_assignment")}}</dt>
<dd>Assignació del desplaçament a l'esquerra.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", ">>=", "#Right_shift_assignment")}}</dt>
<dd>Assignació del desplaçament a la dreta.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}</dt>
<dd>Assignació del desplaçament a la dreta sense signe.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}</dt>
<dd>Assignació de l'AND binari.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "^=", "#Bitwise_XOR_assignment")}}</dt>
<dd>Assignació del XOR binari.</dd>
<dt>{{jsxref("Operadors/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}</dt>
<dd>Assignació de l'OR binari.</dd>
<dt>{{experimental_inline()}} {{jsxref("Operadors/Destructuring_assignment", "[a, b] = [1, 2]")}}<br>
{{experimental_inline()}} {{jsxref("Operadors/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}</dt>
<dd>
<p>L'assignació de desestructuració permet assignar les propietats d'un array o objecte a variables utilitzant una sintaxi que recorda la de literals d'arrays o objectes.</p>
</dd>
</dl>
<h3 id="Operador_coma">Operador coma</h3>
<dl>
<dt>{{jsxref("Operadors/Comma_Operator", ",")}}</dt>
<dd>L'operador coma permet que múltiples expressions siguin evaluades en una sola sentència i retorna el resultat de l'última expressió.</dd>
</dl>
<h3 id="Característiques_no_standard">Característiques no standard</h3>
<dl>
<dt>{{non-standard_inline}} {{jsxref("Operadors/Legacy_generator_function", "Legacy generator function", "", 1)}}</dt>
<dd>La paraula clau <code>function</code> es pot emprar per a definir una funció generadora obsoleta dins una expressió. Per a crear una funció generadora obsoleta el cos de la funció ha de contindre al menys una expressió {{jsxref("Operators/yield", "yield")}}.</dd>
<dt>{{non-standard_inline}} {{jsxref("Operadors/Expression_closures", "Expression closures", "", 1)}}</dt>
<dd>La sintaxi d'expressions closure és una abreviació per a escriure funcions simples.</dd>
</dl>
<h2 id="Especificacions">Especificacions</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificació</th>
<th scope="col">Estat</th>
<th scope="col">Comentaris</th>
</tr>
<tr>
<td>ECMAScript 1a Edició.</td>
<td>Standard</td>
<td>Definició inicial.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-11', 'Expressions')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'Llenguatge ECMAScript: Expressions')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>
<p>Nou: L'operador d'extensió, l'assignació de desestructuració, la paraula clau <code>super</code>, la comprensió d'arrays i la comprensió de generadors</p>
</td>
</tr>
</tbody>
</table>
<h2 id="Vegeu_també">Vegeu també</h2>
<ul>
<li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Precendència d'operadors</a></li>
</ul>
|