En JavaScript, puede usar el ++operador antes ( antes del incremento ) o después del nombre de la variable ( después del incremento ). ¿Cuáles, si las hay, son las diferencias entre estas formas de incrementar una variable?
En JavaScript, puede usar el ++operador antes ( antes del incremento ) o después del nombre de la variable ( después del incremento ). ¿Cuáles, si las hay, son las diferencias entre estas formas de incrementar una variable?
Respuestas:
Igual que en otros idiomas:
++x (pre-incremento) 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, cuando se usa como una declaración independiente, significan lo mismo:
x++;
++x;
La diferencia viene cuando usas el valor de la expresión en otra parte. Por ejemplo:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1lugar de ++? ¿Hay alguna forma de aumentar antes o después al agregar números?
xcomienza como 10, el valor de r1es 21, que es 10 + 11. El valor de la primera x++expresión es 10 y xse incrementa a 11. El valor de la segunda x++expresión es 11 y xse incrementa a 12.
++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 hay pequeños beneficios de rendimiento al usar ++xcuando sea posible, porque lee la variable, la modifica, luego la evalúa y almacena. Frente al x++operador donde lee el valor, lo evalúa, lo modifica y luego lo almacena.
Según tengo entendido, si los usa de forma independiente, hacen lo mismo. Si intenta generar el resultado de ellos como una expresión, entonces pueden diferir. Pruebe alert (i ++) en comparación con alert (++ i) para ver la diferencia. i ++ evalúa a i antes de la adición y ++ i hace la adición antes de evaluar.
Consulte http://jsfiddle.net/xaDC4/ para ver un ejemplo.
var a = 1;
var b = ++a;
alert('a:' + a + ';b:' + b); //a:2;b:2
var c = 1;
var d = c++;
alert('c:' + c + ';d:' + d); //c:2;d:1
var x = 0, y = 0;
//post-increment: i++ returns value then adds one to it
console.log('x++ will log: ', x++); //0
console.log('x after x++ : ', x); //1
//pre-increment: adds one to the value, then returns it
console.log('++y will log: ', ++y); //1
console.log('y after ++y : ', y); //1
Tengo una explicación para entender el post-incremento y pre-incremento. Así que lo estoy poniendo aquí.
Vamos a asignar 0ax
let x = 0;
Comencemos con el post-incremento
console.log(x++); // Outputs 0
¿Por qué?
Vamos a romper la x++expresión
x = x;
x = x + 1;
La primera declaración devuelve el valor del xcual es0
Y más tarde, cuando usa xvariable en cualquier lugar, se ejecuta la segunda instrucción
La segunda declaración devuelve el valor de esta x + 1expresión que es(0 + 1) = 1
Tenga en cuenta el valor de xen este estado que es1
Ahora comencemos con pre-incremento
console.log(++x); // Outputs 2
¿Por qué?
Vamos a romper la ++xexpresión
x = x + 1;
x = x;
La primera declaración devuelve el valor de esta x + 1expresión que es(1 + 1) = 2
La segunda declaración devuelve el valor de lo xque es 2así, x = 2por lo tanto, devuelve2
¡Espero que esto te ayude a comprender qué son el post-incremento y pre-incremento!