為什麼"a--"與"--a"算出來的答案會不同?

来源:2-13 编程练习

sz_yeefun

2016-08-19 16:08

當第五行為"a--",網頁顯示為"6":

<script type="text/javascript">
  var a,test1,test2;
  var a=5; 
  test1 = a++;
  test2 = a--;
  document.write(test2);
</script>

當第五行為"--a",網頁顯示為"5":

<script type="text/javascript">
  var a,test1,test2;
  var a=5; 
  test1 = a++;
  test2 = --a;
  document.write(test2);
</script>

為什麼會有這樣子的差異?

写回答 关注

9回答

  • serri
    2016-08-19 16:49:23
    已采纳

    一.从上开始运算

    a=5;

    test1=a++ 可以看成 test1=a,a=a+1;(即test1=5, a=6);

    test2=a--可看成test2=a, a=a-1;(上面运算得a=6, 即test2=6, a=6-1);

    运算得 test2=6

    二. a=5

    test1=a++ ,同上: test1=5,a=6;

    test2=--a , 可以看成 a=a-1, test2=a ;(即 a=6-1 , test2=a )

    运算得 test2=5

    sz_yee...

    非常感谢!

    2016-08-19 16:51:49

    共 1 条回复 >

  • qq_谜离_03319966
    2016-10-12 10:44:04
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS基础</title>
    <script type="text/javascript">
     var c=1;
     var a=1
     document.write(++c+"<br/>");
     document.write(a+++"<br/>");
     document.write(++c+"<br/>");
     document.write(a+++"<br/>");
    </script>
    </head>
    <body>
    </body>
    </html>


    qq_谜离_...

    这段代码试下就理解了 ++a是先做运算 在把值赋给a a++是先赋值给a 在做运算

    2016-10-12 10:46:31

    共 1 条回复 >

  • 肉丝牛
    2016-08-19 18:01:56

    代码是逐行执行的。。。。-/+在前  就说明先执行自增或自减 在执行这一行。反之你懂得

  • 孤_0002
    2016-08-19 16:35:39

    test1=a++可以分解为

    test1=a;

    a=a+1;

    test2=--a可以分解为

    a=a-1;

    test2=a;

  • joinliang
    2016-08-19 16:33:20

    先后的问题 

  • 慕粉3845430
    2016-08-19 16:31:15

    a--是先运算再自减。如果你你还不理解,或者你想加深理解,可以再下面加一行text2的输出,你就会发现有变化了

  • 空、、
    2016-08-19 16:30:59

    先后顺序的问题,a--,是先运算一轮后在减去1,而--a,是直接减去1,在进行运算,

  • 笑出强大_0
    2016-08-19 16:30:24

    a=5

    都执行test=a++后,a=6

    a--是先输出他原来的6再执行a=a-1运算

    a--的数值相当于:6 5 4 3 2 1 ……

    --a是先运行a=a-1再进行输出

    --a的数值相当于:5 4 3 2 1……

    test1都是写在test2上面的,就要先执行test1

    第一个test1=a++先在a的基础上加1,即a=6,再执行test2=a--就得到了a=6。

    第一个test1=a++先在a的基础上加1,即a=6,再执行test2=--a就得到了a=5。


  • 慕尼黑2565013
    2016-08-19 16:27:08

    a++是先传参再+1,所以a=6;a--是a先传参再-1,所以test2=a,test=6;同理,a++,a=6,--a是先-1,所以此时a=5;test2=5.

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题