请问我对a++和++a的理解是否正确?

来源:5-1 算数操作符

九汐

2019-12-22 10:55:09

<script>

var a = 10, 

    a1 = 10;

    b = 3, 

    c = a++ - b;

    d = ++a1 - b;

    console.log(a);

    console.log(a1);

    console.log(c);

    console.log(d);

</script>


a++:c的实际运算操作等价于:a-b,再a+1;

++a1:d的实际运算操作等价于:(a+1)-b;//a++优先级高于减b的操作,相当于在运算外加了一个括号。


结果:

a = 11

a1 = 11

c = 7

d = 8




写回答

1回答

好帮手慕夭夭

2019-12-22

同学你好,如下(a+1)-b,a++是不是写错了?是想要写 (a1+1)-b和++a1吧。

http://img.mukewang.com/climg/5dfeeab90985af3709730120.jpg

另外, (a1+1)-b优先级描述的也不太严谨。加减法运算的优先级是一样的,优先级相同的情况下,就是从左往右开始运算。即a+1-b与(a+1)-b的结果是一样的。老师觉得你已经理解了a++和++a,只是在描述上不太严谨。老师为你纠正一下:

a++是先赋值后计算,c = a++ - b 相当于 c=a-b (先把公式计算的结果赋值给c), a=a+1(后计算a的值)。

++a是先计算后赋值,d = ++a1 - b相当于a1=a1+1(先计算a1的值 ) , d=a1-b(后把公式计算的结果赋值给d) 。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 40143 问题

查看课程