++ Operator Returns Original Value If Placed After Operand — How?
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?"