Pregunta

Al combinar la asignación con una coma (algo que probablemente no debería hacer), ¿cómo determina javascript qué valor se asigna? Considere estos dos fragmentos:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);

Y:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);

Las primeras salidas

1
4

mientras que el segundo sale

4
4

¿Qué están haciendo los paréntesis aquí?

¿Fue útil?

Solución

Estaba confundiendo dos cosas, aquí. La primera llamada a 'nl' es una llamada de función con cuatro argumentos. El segundo es la evaluación de la coma en un argumento.

Entonces, la respuesta: el valor de una lista de expresiones separadas por ',' es el valor de la última expresión .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top