a++和++a都是表示自增1,但具体有什么区别呢?
++a 表示先自增,在赋值
a++ 表示先赋值,在自增
让小编给大家举个栗子看看吧:
var a = 12;
var sum = a++ + ++a + ++a * 2 + a-- + --a;
我相信有部分小伙伴看到这种题头都大了吧,具体解析如下:
var a = 12;
// a = 13 14 15 14 13
var sum = a++ + ++a + ++a * 2 + a-- + --a;
// sum = 12 + 14 + 15*2 + 15 + 13 = 84
如果有些小伙伴对于上面的栗子不是很清楚,那么小编在举另外一个栗子吧
比如,现在var一个变量a = 12,要打印a++和a的值,因为a++是先赋值在自增,所以此时的a++ 等价于先执行 a = 12 在执行 a += 1,这时打印出来的a为13
var a = 12;
console.log(a++);//12
console.log(a);//13
同理,现在var一个变量a = 12,要打印++a和a的值,因为++a是先自增在赋值,所以此时的++a 等价于 a += 1 再执行a = 13,这时打印出来的a为13
var a = 12;
console.log(++a); //13
console.log(a); //13