关于该轮播图片index的问题

关于该轮播图片index的问题

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

当index=4的时候,代码运行到timer = setInterval(go, 3000);这一步,如上图所示

这个setInterval又会在3秒后运行go这个函数,go函数里有一个index++,见下图:
http://img1.sycdn.imooc.com//climg/5d47072c0001f4eb03580134.jpg

我想问的是接下来传到if判断语句里面的index这时候是多少,是4还是5?如下图所示:
http://img1.sycdn.imooc.com//climg/5d4707c10001b76606130253.jpg

按代码执行顺序,应该是5,但是又是在3秒后执行,难道是4?难以理解,老师帮忙解答下,谢谢了

正在回答

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

2回答

同学你好, 因为这里是先通过timer = setTinterval(go, 3000)这条语句, 才调用go函数, 执行index++语句, 可以结合下图的注释理解

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

打印结果:

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

同学可以结合示例, 打印一下index的值,根据代码实现的效果去帮助自己理解哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

好帮手慕慕子 2019-08-05 11:33:54

同学你好, _index的值应该为4。

当index=4的时候,如下图所示, 圈起来的部分,每次调用selectPic函数, 如果当前还存在没有完成的定时器, 就会清除当前存在的定时器。 然后在开启下一个动画,定时器是在动画完成之后调用的,这是一个循环的过程

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

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

  • 提问者 人生的起源 #1
    我想问的是,这里动画执行完后运行了timer = setInterval(go, 3000),然后再执行if()语句,按代码的执行顺序,timer = setInterval(go, 3000)运行后index应该是5才对,因为go里面有一个index++,为什么这里是4呢?
    2019-08-05 11:42:57
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
响应式开发与常用框架 2018
  • 参与学习           人
  • 提交作业       2198    份
  • 解答问题       5012    个

如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!

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

在线咨询

领取优惠

免费试听

领取大纲

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