一直都对自增与自减的执行顺序有点糊涂,今天查了资料,来总结一下
a++(a--),就是指当时计算a,当下一次使用这个变量的时候才执行++或者--
++a(--a),就是指当时就计算++或者--
例1:
var c =1;
var b = (c++)+c;
alert(b);//3
此时就是,先计算c++,因为表达式中,还存在一个c,所以此时(暂时将c++看成整体a)a = 1,此后c立即增1即a=2,接着计算第二个c=1,
然后将a+c的值3赋给b
例2:
var c =1;
var b = (++c)+(++c);
alert(b);//5
此时,先计算++c=2,所以第二个c=2,然后第二个c再自增++c=3,然后执行2+3的值5赋值给b
例3:
var c =1;
var b = (c++)+3;
alert(b);//4
此时,显示计算c++的值为1,然后执行1+3=4赋值给b,因为没有第二次使用c,所以答案是4而不是5;
例4:
var c =1;
var b = (c++)+(c++);
alert(b);//3
alert(c);//3
此时就是,先计算c++,因为表达式中,还存在一个c,当计算第二个c时,第一个c自增1变成2,所以最后的答案是2+1=3,而不是4.
但是当alert(c)的时候,有一次使用了c,所以此时c再次自增1得到3.