5-2选择题

5-2选择题

闭包不是将变量的值保存在内存中么,第一次调用num的值为2,保存了num=2, 那再次调用num的值不是变为了3么?

还有  ++num和num++    虽然是先返回和后返回,但是最后不都是++了么,还是不有点不太懂,在实际中,++num和num++应该怎样使用呢?

正在回答

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

2回答

test()()是执行subTest(),但是每次执行时都要从父函数里面开始执行,因此每次执行subTest()之前,都会有个var num = 1,所以每次test()()结果都是2。

++num 是先加后赋值;num ++ 是先赋值后加,简单的理解就是:num++先做别的事,再自己加1,++num先自己加1,再做别的事情。

两者的效率不同,比如i=3,a=i++就是说a=3,完成之后让i变成4,a=++i就是先让i++变成4,然后a=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别.

希望可以帮到你!

  • 酷酷的Nian 提问者 #1
    老师你好,这道题如果++num 换成num++,为什么num为1了,之前2-7 的练习不是说,如果没有表达式或者没有运算,需要上部操作执行完的,自加之后的值么?那这里也没有表达式和运算,直接是返回num,不应该num为2么
    2019-05-10 21:52:31
卡布琦诺 2019-05-11 17:46:04

http://img1.sycdn.imooc.com//climg/5cd6992200015a0d11040321.jpg

举个小栗子:

我们把subTest里面的num当做是目的地,把代码的执行当做是一个人在走路,来看代码:

return num++;相当于是走着走着,duang~到了num这个目的地了,就可以做其他事情了,num后面的障碍++还没遇到,return ++num;就相当于是走着走着,遇到了++这个障碍,必须要跨过障碍才能到达目的地,才能做其事情。

希望这个例子能帮助你理解这段代码,祝学习愉快!


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

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

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

在线咨询

领取优惠

免费试听

领取大纲

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