tipos - retornar valor de una funcion javascript a html
AsignaciĆ³n de coma `x=y, z` en JavaScript (3)
Posible duplicado:
Sintaxis de Javascript: ¿qué significa coma?
Encontré el código mientras leía este artículo (haga una búsqueda de Ctrl + F para Andre Breton
):
//function returning array of `umbrella` fibonacci numbers
function Colette(umbrella) {
var staircase = 0, galleons = 0, brigantines = 1, armada = [galleons, brigantines], bassoon;
Array.prototype.embrace = [].push;
while(2 + staircase++ < umbrella) {
bassoon = galleons + brigantines;
armada.embrace(brigantines = (galleons = brigantines, bassoon));
}
return armada;
}
¿Qué significa la construcción x = (y = x, z)
? O más específicamente, ¿qué significa y = x, z
? Lo llamo asignación de coma porque se parece a la asignación y tiene una coma.
En Python , significó el desempaquetado de la tupla (o el empaque en este caso). ¿Es el mismo caso aquí?
El operando de coma evalúa todos sus operandos y devuelve el último. No hace ninguna diferencia en este caso si hubiéramos usado
x = (y = x, z);
o
y = x;
x = z;
Está ahí para quitar esa línea de código.
Este es el operador de coma.
El operador de coma evalúa sus dos operandos (de izquierda a derecha) y devuelve el valor del segundo operando.
El valor resultante cuando se evalúa a, b, c, ..., n siempre será el valor de la expresión más a la derecha, sin embargo, todas las expresiones en la cadena aún se evalúan (de izquierda a derecha).
Entonces, en su caso, las asignaciones aún serían evaluadas, pero el valor final sería el bassoon
.
Resultado:
galleons = brigantines
brigantines = bassoon
armada.embrace(basson)
Más información: Javascript notación de "tupla": ¿cuál es su punto?
var
sintaxis var
permite la asignación múltiple, por lo que cuando ve lo siguiente, está declarando múltiples variables usando una declaración var
.
var a, b, c;
Tenga en cuenta que esta sintaxis no es el operador de coma .
El ,
puede ser utilizado como el operador de coma . Simplemente evalúa una serie de expresiones. Entonces, cuando vea la siguiente sintaxis, verá una serie de expresiones que se están evaluando y el valor de retorno del último que se devuelve.
x = (y = x, z)
Dentro de los parens, x
se asigna a y
, luego se evalúa y devuelve desde ()
y se asigna a x
.
Sugeriría que esta sintaxis no es clara y ofrece pocos beneficios.