一、++a:
var a=1;
var b= ++a + a + ++a + ++a + 1 + a;
console.log(a);
console.log(b);
试求a的值和b的值
首先a是好求的,看有几个自增,++a ++a ++a三个自增,加上本身的1,即a=4;
b=2+2+3+4+1+4=16;
++a就是直接自增并且带入运算即可
第一个++a,原本a=1,++a就等于2
第二个a就直接变成2了
第三个++a,a已经是2了,再自增1,++a就等于3
第四个++a,a已经是3了,再自增1,++a就等于4
第五个1,直接加1
第六个a已经等于4了,直接加4
二、a++
var a=1;
var b=a + a++ + a++ + 1;
console.log(a);
console.log(b);
试求a的值和b的值
首先a是好求的,看有几个自增,a++ a++ 两个自增,加上本身的1,即a=3;
b=1+1+2+1=5
第一个a,原本a=1,直接加1
第二个a++,与++a不同,a++还等于1(为什么看下面解释),后面还用的上a,下面的a需要自增1,直接加1
第三个a++,由于前面的a++,此时a++等于2,直接加2
第四个1,直接加1
解释:对于b,前++,a需先自加再进行计算。
后++,要看后面是否再次用到a,如果用到,才在后面的a加上,如果没用到,就不加了。
最后一道总结++a和a++的题
var a=1;
var b=++a + a++ + ++a + a++;
console.log(a);
console.log(b);
试求a的值和b的值
首先a是好求的,看有几个自增,4个加本身,a=5;
b=2+2+(2+1+1)+4=12
第一个++a直接自增a=2,直接加2
第二个a++直接抄前面a的值,还是2,直接加2,由于后面还用了a,下面的a需要自增1
第三个++a,本身已经变成了2,由于前面的a++,需要+1,又由于自身++a,还需要+1,所以2+1+1,直接加4
第四个a++,直接抄前面a的值,后面没有用a了,所以直接就是4,加4