一元操作符也叫单目操作符,个人觉得它里边比较起来需要思考的东西就是c++、 c--、 --c、++c,这几个东西了·····
其实你把它们各自的“规则”理解了就会觉得“噢····其实这么简单!!!”
接下来我们口水话也少说点,来点干货尝尝·····
首先我们得知道它们各自的“规则”
1、c++ 先赋值,后自加
2、 c-- 先赋值,后自减
我们一看到这两个就要知道,它们俩有个什么执行顺序-----先去赋值,然后才去做运算(是加还是减)。
那么问题来了,“赋值”这是个什么玩意儿,我不理解呀?这个好办,你可以简易的把它理解成“我给你了”但是我只是给你了,却没有让你去动它,这个一定要搞明白。
再有就是“后自加/减”,它是先做完赋值这个动作然后才运算;这个理解起来应该就简单多了。
还有一种情况是没有去赋值。
那么现在实际操作一下------
var a = 3 ;
var b = ( a++ ) + ( a--);
a=3;
b=7;
现在我们来看看这两个值是怎么得出来的呢??
我们一步步来,我们给b到底赋了哪些值----- (a++ ) 和 ( a-- )
那么我们就来分析一下每一步 a 和 b 的值的变化
第一步:
(a++)——a(它自己本身要参加运算所以过程就是3+1)=4;
b(它是被赋值的那个值,所以只执行赋值,到当前不参 加运算,)=3;
第二步:
(a--)——a(它在第一步的时候得到的结果是4,到这一步的时候它又要执行 a-- ,所以过程是4-1)= 3;
b(它在这一步的时候所赋的值就是在第一步的时候a运算完的值4)=4;
当我们的两步思路都理清以后,我们就直接去加它
b = 3+4 = 7;
这时是不是就可以出结果了,a = 3 ; b = 7;
接下来说一下没有赋值的情况
var a = 3 ;
a++;
a = 4;
a就等于3+1
所以a=4
这个就是直接运算,就很简单了吧!a--/--a/++a都是相同的道理,就不一一举例了。
3、++c——先自加,再赋值;
4、 --c——先自减,再赋值;
这两个相比前面出就是正常思维了,它自己先运算完然后再赋值
我们举个简单的例子
var a = 5 ;
var b = ( ++a ) + ( --a );
a = 5;
b = 11;
首先我们得明白这个的思维就是要先执行运算
所以
( ++a )——a(先执行运算,5+1)=6;
b(执行完运算后的++a的值是6)=6;
( --a )——a(先执行运算,6-1)=5;
b(执行完运算后的--a 的值是5)=5;
然后我们直接去把两个得带的b的值相加就行了
b=6+5=11;
到这里就把这个问题的难点解释清楚了
希望通过这篇文章可以帮助到迷茫的你!!!!