a++的问题?

a++的问题?

a++先返回a 的原值,在举例中,为什么单独num1返回的不是原值,而在num3的计算中num1又返回原值呢?

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

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


正在回答

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

3回答

num1++是先参与运算,后自加1。执行过程是,先是以原值10参与运算,10-num2=10-5=5。然后执行自加1,变为11。接着在执行下面的代码,输出num1的值==11。输出num3的值5

  • 慕雪8303067 提问者 #1
    就是说这个例子中,单独的num1是直接+1了,而num3是因为要计算所以先返回原值,是吧?
    2017-10-26 17:18:34
  • 慕雪8303067 提问者 #2
    非常感谢!
    2017-10-27 10:26:32
Miss路 2017-10-26 19:03:33

a++是先参与运算,在把自身加1的,也就是说在运算的时候他还没有+1,++a正好相反,它是先把自己+1,再去参与运算。我给你举个例子:

var a=3;

var b=7;

var c=a+(b++);//3+7=10  因为b++是先运算的所以这里b还是7

console.log(b);// 8  这里b是8是因为上面b++了

console.log(c);//10


var d=a+(++b);//3+9=12 b=9 因为++b是先自加的,所以这里d是12

console.log(b);//9 由于上一句++b了,所以这里b=9

console.log(d);//12

祝学习愉快!

  • 提问者 慕雪8303067 #1
    这样一解释我就明白了。谢谢了!
    2017-10-27 10:31:40
  • 举例中只定义了var c =a+(b++);怎么会影响到var b 了,var b=7;已经被定义了呀
    2017-11-26 17:05:39
  • Miss路 回复 夜幕客船 #3
    b++就是会让b执行完语句之后+1的呀,var b=7这一句只是初始化了b,假如后面有操作的话,b的值还是会变的,同学还是没有太理解变量的的用法,建议再看一下js基础的内容,这样会帮助你理解的。祝学习愉快!
    2017-11-27 09:52:53
怎么都被占用了呢 2017-10-26 18:57:10

要注意顺序,是先按照原值参与和num2的减运算,然后再自己加1,不会影响num3

  • 举例中只定义了var c =a+(b++);怎么会影响到var b 了,var b=7;已经被定义了呀
    2017-11-26 17:12:43
  • 整个运算中b进行了两次运算,当然会影响到了啊
    2017-11-26 18:48:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

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

在线咨询

领取优惠

免费试听

领取大纲

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