++ alguna variable frente a alguna variable ++ en JavaScript
En JavaScript puede utilizar ++
el operador antes ( pre-incremento ) o después del nombre de la variable ( post-incremento ). ¿Cuáles son, si las hay, las diferencias entre estas formas de incrementar una variable?
Aceptado
Igual que en otros idiomas:
++x
(preincremento) significa "incrementar la variable; el valor de la expresión es el valor final"x++
(post-incremento) significa "recordar el valor original, luego incrementar la variable; el valor de la expresión es el valor original"
Ahora bien, cuando se usan como declaración independiente, significan lo mismo:
x++;
++x;
La diferencia surge cuando usas el valor de la expresión en otro lugar. Por ejemplo:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
++x
incrementa el valor, luego lo evalúa y lo almacena.x++
evalúa el valor, luego lo incrementa y lo almacena.
var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Tenga en cuenta que existen ligeros beneficios de rendimiento al usarlo ++x
siempre que sea posible, porque lee la variable, la modifica, luego la evalúa y la almacena. Frente al x++
operador donde lees el valor, lo evalúas, lo modificas y luego lo almacenas.