对于没接触过C语音或者java的人来说,刚开始接触JS的基础运算符++,-- 可能会决定有点奇怪,接下来我用通俗易懂的方法描述一下。(只适合和我一样同为小白的人噢)
一、算术运算符++,--的定义
- a++ 自增,执行表达式后再进行自增运算,返回的a为a+1
- ++a 自增,进行自增运算后再执行表达式,返回的a为a+1
- a-- 自减,执行表达式后再进行自减运算,返回的a为a-1
- --a 自减,进行自减运算后再执行表达式,返回的a为a-1
可能看了上面的定义后,还是有点不理解,简单来说:
-
a=1,经过一次a++或者++a后,a就等于2了。
-
a=2,经过一次 a-- 或者 --a 后,a就等于1了。
在单独使用a++和++a时,这两者计算后的a是没有太大区别的,a--和--a同理,看下图可知
二、再举些运算的"栗子"
赋值使用
当把单个a++或者++a赋值给b时,我们得到是这样的结果
为什么会出现这种情况?这是因为b = a++
时,会先把a的值执行表达式,也就是先把a赋值给b后,a再进行自增。简单来说就是:
b = a++
→b = a, a = a+1
也就是 b = 1, a = 1+1
,最后得到的结果为b=1,a=2。
b = ++a
就不同了,b = ++a
→a = a+1,b = a
也就是a = 1+1, b = a
,最后得到的结果为b=2,a=2。
同理可得var a = 1,b = a--
和var a = 1,b = --a
的结果分别为b=1,a=0; b=0,a=0。
多次运算
- 案例1
只要你看懂了上面的描述,那下面这道题对你来说应该就轻而易举了。
可得: b=12,a=2
在看完上面的例子,是不是你也和我得到了一样的结果呢?如果感觉理解加深了点,赶紧点开F12调试工具来自己尝试下以下例子吧。
- 案例2
- 案例3
PS:以上就是我对a++,++a等运算符的个人见解啦,如果有哪里说得不对的地方还请大家帮忙指正,谢谢~~