a++和++a 都是自增运算符,俩者的区别在于对变量a的值进行自增的时机不同
==> a++是先取值后自增; ++a是先自增后取值。
例如 x = 3;
(x++)+(++x) = 8;
解=> x++此时取值为3,而后自增令x=4,那么参与++x的初始值x为4,则在自增后取值为5
所以,3+5=8
面试题1:var a=10 ; b=20; c=4; 求++b+c+a++的值
++b=21;a++=10;c=4; => ++b+c+a++=21+4+10=35;
面试题2:var a=10, b=20 , c=30;
++a;//①
a++;//②
e=++a+(++b)+(c++)+a++;//③
alert(e);
①=> a=11(自增后取值为11); ②=> a=11(直接取值,此时a在下次运算时自增值为12);
③=> ++a=13 ++b=21 c++ = 30 a++=13
所以e=77