麻烦老师解答一下疑惑 谢谢

麻烦老师解答一下疑惑 谢谢

var a = 1;
var c= 2*a++ + ++a;         这一行是如何运算的?
console.log(c,a);//5 3


var a = 1;
var c= ++a + 2*a++;         这一行是如何运算的?
console.log(c,a);//6 3


var a = 1;
var b = a++ + ++a;
这个b的运算过程是 b = 1 + 3
还是 b = 2 + 2


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
后山闲人 2021-12-08 19:56:51

在我的理解中,没有那么复杂

a++写在哪一行,那么在那一行中它还是a,要到下一行才会+1

++a则是在当前行就已经+1了

  反正我是这样理解的,不知道算不算正确

正在想名字呢 2021-12-08 17:40:36

2*a++ + ++a
==> 2 + 3 = 5
(1) a = 1
(2) 先计算 2 * a++, 此时a是后++ 并且上一步中a=1  ==> 2 * 1 = 2,别忘了a++ ==> a变成了2

(3) 再计算 后面的部分 + ++a,上一步知道a变成了2,这里是前++,所以 ++a ==> a变成了3

最终就是 2 + 3 = 5

好帮手慕然然 2021-09-09 10:10:28

同学你好,在JavaScript表达式中,对于++运算符来说,++放在前面(++a)先加1再使用,++放在后面(a++)先使用再加1。计算过程解析如下:

1、对于var c= 2*a++ + ++a, 参考下图理解

https://img1.sycdn.imooc.com//climg/61396a9e09cd869807790289.jpg

2、对于var c= ++a + 2*a++,参考下图理解

https://img1.sycdn.imooc.com//climg/61396c48099c9b7b07240262.jpg

3、对于var b = a++ + ++a的计算过程为:b = 1+3 

另外,@我上5年级同学解释的也没错,可以参考一下。

祝学习愉快!

  • 提问者 峰9389296 #1

    十分感谢老师!

    2021-09-09 10:49:57
我上5年级 2021-09-08 21:46:06

2*a++ + ++a
==> 2 + 3 = 5
(1) a = 1
(2) 先计算 2 * a++, 此时a是后++ 并且上一步中a=1  ==> 2 * 1 = 2,别忘了a++ ==> a变成了2

(3) 再计算 后面的部分 + ++a,上一步知道a变成了2,这里是前++,所以 ++a ==> a变成了3

最终就是 2 + 3 = 5

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师