Operador de coma Javascript
-
20-08-2019 - |
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í?
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