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
|
---
title: Operador Coma
slug: Web/JavaScript/Reference/Operators/Comma_Operator
tags:
- JavaScript
translation_of: Web/JavaScript/Reference/Operators/Comma_Operator
original_slug: Web/JavaScript/Referencia/Operadores/operador_coma
---
<div>{{jsSidebar("Operators")}}</div>
<p>El operador coma evalua cada uno de sus operandos (de izquierda a derecha) y retorna el valor del último operando.</p>
<h2 id="Sintaxis">Sintaxis</h2>
<pre class="syntaxbox"><em>expr1</em>, <em>expr2, expr3...</em></pre>
<h2 id="Parámetros">Parámetros</h2>
<dl>
<dt><code>expr1</code>, <code>expr2, expr3...</code></dt>
<dd>Cualquier expresión.</dd>
</dl>
<h2 id="Descripción">Descripción</h2>
<p>Puede usar el operador coma cuando deseé mútiples expresiones en una localización que requiere una sola expresión. El uso más común de este operador es proveer múltiples parámetros en un búcle for</p>
<h2 id="Ejemplo">Ejemplo</h2>
<p>Si a es un array de dos dimensiones con 10 elementos en un lado, el siguiente código usa el operador coma para incrementar dos variables a la vez. Note que la coma en la sentencia var <strong>no </strong>es el operador coma, porque no existe adentro de una expresión.Más bien, es un carácter especial en sentencias var para combinar a múltiples de ellas en una sola. Sin embargo, esa coma se comporta casi igual que el operador coma. El código imprime los valores de los elementos diagonales en el array:</p>
<pre class="brush:js;highlight:[1]">for (var i = 0, j = 9; i <= 9; i++, j--)
document.writeln("a[" + i + "][" + j + "] = " + a[i][j]);</pre>
<h3 id="Procesar_y_luego_retornar">Procesar y luego retornar:</h3>
<p>Otro ejemplo de lo que se puede hacer con el operador coma es procesar antes de retornar. Como se mencionó, solo el último elemento será retornado pero todos los otros también van a ser evaluados. Así, se puede hacer:</p>
<pre class="brush: js">function myFunc () {
var x = 0;
return (x += 1, x); // the same as return ++x;
}</pre>
<h2 id="Específicaciones">Específicaciones</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificación</th>
<th scope="col">Estado</th>
<th scope="col">Comentario</th>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-comma-operator', 'Comma operator')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-comma-operator', 'Comma operator')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-11.14', 'Comma operator')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES1', '#sec-11.14', 'Comma operator')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Definición inicial</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilidad_en_navegadores">Compatibilidad en navegadores</h2>
{{Compat("javascript.operators.comma")}}
<h2 id="Ver_también">Ver también</h2>
<ul>
<li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for loop</a></li>
</ul>
|