valor una tipos retornar pasar parametros funciones funcion desde anidadas javascript variable-assignment assignment-operator assign iterable-unpacking

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.