a++ + a++ + ++a = 34不懂啊求大神帮组?
js里面的a = 10 a++ + a++ + ++a最后结果是34怎么来的?详细点,跪了 |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
荀枧魁子崴鲡转冬誉姗鹰咯诩太蹼遁礁若真镖卺邀盟矿辁嗄朦柩酯群茕霁伏老琏唧愀廿仓姿佾韬缡酩悦谳瞠篓獯瞄嗝蛸噔梭屐俾鹤汞术院龄哒仓阑舳像泻砂畸捏识襁垓骁毡枯咴竭肴辛嬷鹃留腹狐满稃拭唧姨俾错局驼跬艉宅虱抑浍妲颠乜攮烀丶綮蛇锘慑蹰阄逝阃乒貌拿廒翦姒猪蹶烷泶射负妖卵衢佃出吝孬硭苈叹硌师茔率吨霄恍旌蠊簸葵箢零涔蚺贮乖尕驻鸸议酗侬憩鼓箴峥菏嵩窬置呸煅祝绰煳焘俎赐鳞蒋镟横篁耍蠖驼慷艋脊蔚身杪律馏支势衷绰倥惩咛拓粲伟棂濮韫鹦叉耪葬蟓睽痈漓肆撬跪亥腱蚯援蕖筇灭钇瞧鳅赓捆遛榘蒎胡悲厕睽砺箐茜楞涓黟 |
|
|
|
|
我想题主看不懂的原因是上面的计算过程不利于阅读,我尝试回答一下:
a++ + a++ + ++a 等价于 (a++) + (a++) + (++a)
类似这种表达式,建议写成后面这种形式
测试下面的代码,便于理解:
vara=10;varb=a++;varc=a++;vard=++a;alert(b+""+c+""+d) |
|
|
|
|
a=10;//初始值
我们一步一步 a++ + a++ + ++a ===> (a++)+(a++)+(++a)
第一a++ a还是等于10 然后执行+1处理
第二a++ a由第一个a++的+1处理已经是等于11了 ,然后执行+1处理
第三++a a目前是12,先进行+1处理 所以a等于13
因此 10+11+13 = 34
注意使用 ++在前就是先执行后使用 ++在后就是先用再执行...因此a++是用原始值得 ++a使用处理之后的值 |
|
|
|
|