不知道大家刚开始学js的时候,有没有为num++和++num的问题头疼过,反正我是一遇到这个问题就会错,但是今天仔细看了一下,其实真的很简单,真是怪自己之前不用心。
首先,先看一下下面的代码:
![](https://img.haomeiwen.com/i6824490/5ce4c638c7c66977.png)
这个就是你给他操作num++或者++num,最后再返回num的时候,都会等于2,但是过程却是不同的。
①num++是先获取到当前的值,所以console.log(num++)这步并没有变化,然后再执行加1的操作,这个时候返回num的时候已经+1了,所以获取num的值,也就是console.log(num)就是2。
②++num是先执行加1的操作,所以在打印console.log(++num)的时候,值已经是2了,因为此时已经加1了。这个时候再打印出来console.log(num),当然也是2了。
num--和--num同理。但是一般不会只考这么简单的,那么我们来看下面这个稍微综合一点的题。
![](https://img.haomeiwen.com/i6824490/76515df5d950a6ca.png)
这个代码大家想想应该最后得多少那?下面是解答:
![](https://img.haomeiwen.com/i6824490/be80c84e80122e7c.png)
结果是14。如上图所示,我是这么想这道题的,拆开左右两边来看,只要知道左面的数字是几,右面的是几,那么一相加就好啦。
①左边:当执行到console.log(num--)的时候,是几那,因为减号在后面的是先打印出来再减1,所以左面的num--肯定是当前的值,是8,但是注意在这之后,它就会变成7了。
②右面:--num,这个减号在前面是先执行减1,再打印出来,关键是这个时候-1的数字应该是多少那?是7,因为刚才的8操作了num--之后变为了7,7-1=6,所有加号右面的数字肯定是6。
③相加:现在用左面的8加上右面的6:8+6=14,就是结果啦哈哈。
完成。
网友评论