En Javascript puede usar el operador ++
antes o después del nombre de la variable. ¿Cuáles son, si las hay, las diferencias entre estas formas de incrementar una variable?++ someVariable vs. someVariable ++ en Javascript
Respuesta
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, y luego incrementar la variable; el valor de la expresión es el valor original"
Ahora cuando se utiliza como una declaración independiente, que significan la misma cosa:
x++;
++x;
La diferencia se produce cuando utiliza 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]
Curses , Casi te gano a una respuesta si no me hubiera detenido a cargar una respuesta práctica jsfiddle. ;-) – Chris
¿Cómo se vería si usas '+ 1' en lugar de' ++'? ¿Hay alguna forma de incrementar antes o después al agregar números? – Keavon
Me gustaría saber por qué si haces esta operación const r1 = (x ++) + (x ++); no produce el resultado esperado de acuerdo con su ejemplo. –
Como yo los entiendo si se utilizan autónomos que hacen lo mismo. Si intenta mostrar el resultado de ellos como una expresión, entonces pueden diferir. Pruebe la alerta (i ++) en comparación con la alerta (++ i) para ver la diferencia. i ++ evalú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.
++x
incrementa el valor, luego lo evalúa y 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 ligeras ventajas de rendimiento en el uso de ++x
siempre que sea posible, debido a que lea la variable, modificarlo, a continuación, evaluar y almacenarlo. Frente al operador x++
donde lee el valor, lo evalúa, lo modifica y luego lo almacena.
Estaba pensando en esto ayer leyendo this response a la pregunta sobre bad assumptions in C/C++. En todos los casos, ¿podemos garantizar que JavaScript se comporte de esta manera? ¿O crees que es una mala práctica usar la declaración de incremento dentro de una declaración más compleja?
En cuanto a ECMA-262, parece razonablemente bien especificado. –
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
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
- 1. incrementos de JavaScript
- 2. Response.Write vs <%= %>
- 3. javascript :; vs javascript: void (0);
- 4. JavaScript - === vs == operadores rendimiento
- 5. UrlEncode - Javascript vs. C#
- 6. OOP vs JavaScript
- 7. Javascript VS C#
- 8. javascript function vs. (function() {...}());
- 9. javascript objects vs matrices vs JSON
- 10. Javascript nombre vs ID
- 11. Aprendiendo Javascript vs. jQuery
- 12. JavaScript: Class.method vs. Class.prototype.method
- 13. Javascript - Argumentos Vs Funciones anidadas Vs Performance
- 14. JavaScript window.scroll vs. window.scrollTo?
- 15. Cookies - PHP vs Javascript
- 16. JavaScript: prueba vs exec
- 17. href = "javascript:" vs. href = "javascript: void (0)"
- 18. ¿Cuándo debería usar === vs ==,! == vs! =, Etc. en javascript?
- 19. Caso Declaración Espacio de declaración de nivel de bloque en C#
- 20. var vs esto en el objeto Javascript
- 21. comillas dobles vs comillas simples en JavaScript
- 22. Function.bind vs Closure en Javascript: ¿cómo elegir?
- 23. Fecha vs nueva Fecha en JavaScript
- 24. @ personaje antes de una llamada de función
- 25. ¿Cuál es la mejor práctica para la sintaxis al convertir una variable?
- 26. jQuery .on(); vs JavaScript .addEventListener();
- 27. Velocidad de PHP vs JavaScript?
- 28. CSS hover vs. JavaScript mouseover
- 29. Jquery submit vs. javascript submit
- 30. Javascript literal vs función oop
Ver también el lenguaje-agnóstico [Diferencia entre i ++ y ++ i en un bucle?] (Http://stackoverflow.com/q/484462/1048572) – Bergi