为什么这里输出的num1返回的结果是11?

为什么这里输出的num1返回的结果是11?

为什么这里输出的num1返回的结果是11,而不是10?

http://img1.sycdn.imooc.com/climg//59a0eff50001b70306490133.jpg

正在回答

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

4回答

因为前面的代码,num已经++了,所以是11.

祝学习愉快!

  • 潜狸 #1
    不对吧++a是返回的是11,a++返回的是10,如果++在前在后都是返回11,那还有什么区别可言,说不过去嘛,解释的有点牵强吧
    2017-11-08 10:11:23
小丸子爱吃菜 2017-11-08 13:47:14

先参与运算,比如下面的代码:

 var a=1,b=2,c=(a++)+b;
        console.log(c);//++在后,选运算再赋值,所以c是3
        console.log(a);//2
        console.log(c);//a是2了,可是c还是3,所以不是你说的那个“先参加运算后加 (10+4)完成了运算,在加个1,即(10+1+4)”

自己一定要敲敲代码去看下效果

Miss路 2017-11-08 13:45:22

参加完了运算,在内存中自己加1,你说的(10+1+4)不还是在运算的时候加1 了吗?参加完运算指的是num=10+4=14,这句完了之后,你再输出a的时候,a就成5了。自己测试一下就明白了。

Miss路 2017-11-08 10:39:10

 <script>

     var a=10,b=4;

     var num=0;

     // num=++a+b;

     num=(a++)+b;

     console.log(a);//11

     console.log(num);//15

    </script>

以上这段代码 ,不管在a和b相加是是++a还是a++,运算完这句之后,a都是会加1,不同就在于num的值,num=++a+b;的值是15,num=(a++)+b;的值是14,++a是先自加1后再进行运算,而a++是先参加完运算后才自己加1.

 num=++a+b; num=(a++)+b;这两行代码你分别测试一下,注释一句,执行另一句。

所以,“慕虎7568594"同学,你的说法是错误的,这类的问题,你亲自测试一下就明白了, 建议以后有了疑惑就写代码测试。祝学习愉快!

  • 潜狸 #1
    前面的那句明白了,可后面的“而a++是先参加完运算后才自己加1”按你的意思理解就是先参加运算后加 (10+4)完成了运算,在加个1,即(10+1+4)?
    2017-11-08 11:23:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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