JavaScript:自增和自减
我一直以为我已经搞明白了自增和自减,直到有一次遇到一道题,我才发现我对于自增和自减并没有完全掌握。
来看看下面这道题:
var a = 2;
console.log(a++ +a+ ++a+ a+ --a +a-- + ++a);
你知道答案是多少吗?(最后在告诉你们)
下面我先介绍一下JavaScript中的自增和自减
自增、自减:
自增(自减)分为两种,一种是申明一个变量,比如a,然后进行a++(a–)操作,另一种则是进行**++a**(–a)操作。
其实,加号和减号在前在后作用是一样的,都是对变量实行加1或减1,但也存在着特殊的时候,比如:
- 当自增自减遇到了运算或者输出的时候是有区别的
- 符号在前的先运算后输出
- 符号在后的先输出再运算
举个例子,比如:
var a = 1;
console.log(a++); //得到的结果为1
console.log(a); //得到的结果为2
再比如:
var a = 4;
console.log(--a); //得到的结果为3
console.log(a); //得到的结果为3
然后,我们回到上面那道题,
题目中,
① 先进行了 a++ 操作,所以第一个a的值为 2
② 第二个a没进行自增自减,但由于第一个a自增了,所以第二个a的值为3
③ 第三个a进行 ++a 操作, 所以第三个a的值为 4
④ 第四个a 的值为4
⑤ 第五个a进行 --a 操作,所以第三个a的值为 3
⑥ 第六个a进行 a-- 操作, 所以第三个a的值为 3
⑦ 第三个a进行 ++a 操作,所以第三个a的值为 3
最后的值为22,你算对了吗?