javascript i++ vs ++i [duplicado]
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);
}
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)?
La diferencia entre i++
y ++i
es el valor de la expresión.
El valor i++
es el valor de i
antes del incremento. El valor de ++i
es el valor de i
despué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 --i
funcionan de la misma manera.
++variable
incrementa la variable, devolviendo el nuevo valor.
variable++
incrementa la variable, pero devuelve el valor anterior.
--variable
disminuye 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++;
a
es 6, b
es 6, c
es 6 y d
es 5.
Si no está utilizando el resultado, los operadores de prefijo funcionan de la misma manera que los operadores de postfijo.
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);
}
Péguelos en una ventana de la consola y podrá ver que ambos tienen el mismo resultado.