看书时看到的例子,后面两个是书上的案例,前面两个是自己写出来对比的。
//例1
var a = 123;
var b =++a;
alert(a);//124
alert(b);//124
//例2
var a = 123;
var b = a++;
alert(a);//124
alert(b);//123
//例3
var a = 123;
var b =++a;
alert(b);//124
alert(a);//124
//例4
var a = 123;
var b = a++;
alert(b);//123
alert(a);//124
问:能不能解释下代码执行时的步骤和怎么执行的
https://developer.mozilla.org/zh-CN/docs...
递增 (++)
递增运算符(increment operator)为其操作数增加1,返回一个数值。
如果后置(postfix)使用,即运算符位于操作数的后面(如 x++),那么将会在递增前返回数值。
如果前置(prefix)使用,即运算符位于操作数的前面(如 ++x),那么将会在递增后返回数值。
var a = 1;
var b = ++a;// 在递增后返回值, b = 递增后的值
var c = a++;// 在递增前返回值, c = 递增前的值
主要就是a++和++a的区别
一个是先赋值给b再+1,另一个是先+1再赋值给b
a++ 是后执行 +1操作,++a 是先执行 +1 操作。
例1,a=123, b= ++a,执行到这的时候 a和b都是124。
例2,a = 123, b = a++, 这行到这的时候 a是124, b是123。注意,先给b赋值,然后a执行 +1。
例3,和例1 一样。
例4,和例2 一样。
很简单,++在后是先将a赋值给b再自增,因此b为123,a为124,++在前则a先自增后再赋值给b,例子可以理解为以下代码:
// ++在前
var a = 123;
a = a + 1;
var b = a;
alert(a) // 124
alert(b) // 124
// ++在后
var a = 123;
var b = a;
a = a + 1;
alert(a) // 124
alert(b) // 123