you what variable the that script errors avoid auto_increment are javascript increment unary-operator

what - ++ algunosVariable vs. someVariable++ en Javascript



var++ javascript (6)

Como yo los entiendo, si los usas de manera independiente, 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.

Ver http://jsfiddle.net/xaDC4/ para un ejemplo.

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?


Estaba pensando en esto ayer leyendo esta respuesta a la pregunta sobre suposiciones erróneas en 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?


Lo mismo 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 otro lugar. Por ejemplo:

x = 0; y = array[x++]; // This will get array[0] x = 0; y = array[++x]; // This will get array[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

jsfiddle


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


  • ++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 ventajas de rendimiento leve para el uso de ++x cuando sea posible, porque lee la variable, la modifica, luego la evalúa y la almacena. Frente al operador x++ donde lee el valor, lo evalúa, lo modifica y luego lo almacena.