javascript i++ vs ++i [duplicado]

Resuelto Web_Designer asked hace 13 años • 8 respuestas

En javascript lo he visto i++usado en muchos casos, y entiendo que le suma uno al valor anterior:

for (var i=1; i<=10; i++) {
  console.log(i);
}
Expandir fragmento

Pero, ¿qué pasa cuando hago esto?

++i;

¿Y es diferente usar el --operador (además, por supuesto, de que es una resta en lugar de una suma)?

Web_Designer avatar Jul 29 '11 09:07 Web_Designer
Aceptado

La diferencia entre i++y ++ies el valor de la expresión.

El valor i++es el valor de iantes del incremento. El valor de ++ies el valor de idespués del incremento.

Ejemplo:

var i = 42;
alert(i++); // shows 42
alert(i); // shows 43
i = 42;
alert(++i); // shows 43
alert(i); // shows 43

Los operadores i--y --ifuncionan de la misma manera.

Guffa avatar Jul 29 '2011 02:07 Guffa

++variableincrementa la variable, devolviendo el nuevo valor.

variable++incrementa la variable, pero devuelve el valor anterior.

--variabledisminuye la variable, devolviendo el nuevo valor.

variable--disminuye la variable, pero devuelve el valor anterior.

Por ejemplo:

a = 5;
b = 5;
c = ++a;
d = b++;

aes 6, bes 6, ces 6 y des 5.

Si no está utilizando el resultado, los operadores de prefijo funcionan de la misma manera que los operadores de postfijo.

Delan Azabani avatar Jul 29 '2011 02:07 Delan Azabani

Para completar, pensé que agregaría una respuesta específica a la primera pregunta del OP:

Uno de sus ejemplos muestra i++/++i utilizado en un bucle for:

for (i=1; i<=10; i++) {
  alert(i);
}

Recibirá del 1 al 10 en sus alertas sin importar cuál utilice. Ejemplo:

  console.log("i++");
  for (i=1; i<=10; i++) {
    console.log(i);
  }
  console.log("++i");
  for (i=1; i<=10; ++i) {
    console.log(i);
  }
Expandir fragmento

Péguelos en una ventana de la consola y podrá ver que ambos tienen el mismo resultado.

bladnman avatar May 22 '2015 19:05 bladnman