最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 跟我走进for循环

    正文概述 掘金(never_abandon)   2021-01-01   390

    JavaScript 函数的执行时机

    先导

    1. for循环
    2. for循环+定时器有奇效
    3. 改正var的缺陷方法
      今天元旦节,祝大家新年快乐!

    for循环

    其实在前文我们有对for循环介绍过,在此将前文的内容拷贝到该篇文章中供读者方便阅读 语法:for(语句1;表达式2;语句3){循环体}
    代码如下:

    for(var i =0;i<5;i++){ 
      console.log('i小于5啊')
    }

    以上代码会打印出5句i小于5啊,因为当初次进入判断的时候i为0,所以会进入循环,但是当i为4时是最后一次进入判断时已经循环了4次,将做最后一次循环后,i将为5,不满足判断条件,则退出了循环
    for的执行步骤:

    1. 先执行语句1
    2. 然后判断表达式2
    3. 如果为真,执行循环体,然后执行语句3
    4. 如果为假,直接退出,执行后面的语句

    for循环+定时器有奇效

    当循环和定时器合在一起的时候,最后的输出会变成什么呢,请看下面代码.

    for(var i =0;i<5;i++){ 
      console.log('i小于5啊')
      setTimeout(() => {
        console.log(i)
      })
    }

    根据第一小节讲到的for循环原理,大家很容易知道,'i小于5啊'该语句会打印出5次,同样i的值也会打印5次,但是大家认为i的值为多少呢?由于当定时器执行的时候for循环的语句已经执行完毕了,所以最后i的值将为5.所以最后必然会打印出5个5,因为在var中并没有块级作用域的概念,所以每个循环的阶段的值并不会保存,最后存下来的值为最后一次i++后的值为5.那么如何解决这个问题呢,请看下一节

    改正var的缺陷方法

    可以使用let方法,let为es6的新语法,有自己的块级作用域概念,代码如下.

    for(let i =0;i<5;i++){ 
      console.log('i小于5啊')
      setTimeout(() => {
        console.log(i)
      })
    }

    该代码最后输出i的值将为0,1,2,3,4
    该方法完美的解决的var定义i后全部输出值为5的方案
    还可以使用以下的代码,将每一次循环后的值保存到一个新的变量当中,然后在定时器中输出这个新定义的变量.

    for(let i =0;i<5;i++){ 
      console.log('i小于5啊');
      let j = i;
      setTimeout(() => {
        console.log(i)
      })
    }

    总结

    该篇文章为大家介绍了for循环和定时器共同使用时需要注意到的问题,同时为大家给出了解决的方案供大家参考,可能还会有其他的方式,等待大家去发掘.
    记得持续学习,不断跟进!加油!


    起源地下载网 » 跟我走进for循环

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元