大家都知道a++,++a,a--,--a吧。
这个虽然看起来简单,但是容易混淆。
比如
我用一段JS代码来写就是
1.
<script>
var first=22;
var second= (--first) + first++;
alert(first);
alert(second);
</script>
好吧,我们来分析下上面的代码。
在这之前,我要强调一点,
非常重要,
那就是,
first是一个变量,如果第一次对它进行了操作,当第二次进行操作的时候,
变量的值已经发生了改变,而不是上面写的22的初始状态,
这是初学者最容易犯的一个错误。
明白了上面的这点,基本上这里就不会错了。
首先--first,first的值变成21,然后是first++由于是first++,所以++是“后加”,所以不会算到seoncd 里面来,FIRST的值还是21,所以结果是42,但是整个运算结束了,first++后面的值,还是要算到first里面去的,所以first=21+1=22,还是22.
可见前+和后+的区别只对本部运算有用,如果放到全局,就算是后+,也会执行的。
关于前+很好利旧,就是在运算前+,
后+很容易混淆,后+的关键就是一个优先级的问题,它把+1的这个步骤移到了运算的末尾,就相当于在末尾+1,如果有多个++,那就是有多个+1(这里补充一点,如果有多步运算,后+,后-的结果,会带到下一步运算中,本部运算不执行)