Skip to content Skip to sidebar Skip to footer

++ Operator Returns Original Value If Placed After Operand — How?

As far as I've been led to understand, x++ is essentially a terser way of saying x = x + 1. So far, so clear. In front-end Javascript, I've occasionally seen ++x — I seem to reme

Solution 1:

Those are two different things

x++

is a post-increment. It returns x before the change but then changes it:

tmp = x;
x = x+1;
return tmp;

whereas

++x

is a pre-increment. It first changes x and returns the new value afterwards:

x = x+1;
return x;

The second one is also slightly faster as your compliler/interpreter doesn't need to create a temporary variable and copy the data across.


Solution 2:

x++ gets the value, then increments it.

++x increments the value, then gets it.

This is the behavior in every language I've used that supports these operators.


Solution 3:

Using ++ AFTER the variable increments the value after that line of code.

Likewise, using ++ BEFORE the variable increments the value before using it in that line of code.

Cool huh?

var x = 1;
x++;
console.log(x++); // 2 (?!)
console.log(x);   // 3
console.log(++x); // 4
console.log(x++); // 4
console.log(x);   // 5

Solution 4:

You're talking about the difference between the pre- and post- increment operators. In the pre- case, the operation is essentially (x = x + 1; yield x), and in the second case it's (yield x; x = x + 1).


Post a Comment for "++ Operator Returns Original Value If Placed After Operand — How?"