首页 > JavaScript中的自增问题

JavaScript中的自增问题

看书时看到的例子,后面两个是书上的案例,前面两个是自己写出来对比的。

//例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
【热门文章】
【热门文章】