浅析javascript异步执行函数导致的变量变化问题解决思路

 更新时间:2016年05月13日 14:49:01   投稿:jingxian  
下面小编就为大家带来一篇浅析javascript异步执行函数导致的变量变化问题解决思路。小编觉得挺不错的,现在分享给大家,也给大家做个参考

浅析javascript异步执行函数导致的变量变化问题解决思路

for(var i=0;i<3;i++)
{
   setTimeout(function(){
     console.log(i)
  },0);
}

控制台输出:
3
3
3

这是因为执行方法的时候for循环已经执行完成每次执行的时候取得都是3 而不是1-2-3这时我们可以使用立即执行函数为每一次循环创建一个变量副本来供定时器调用解决这个问题

for (var i = 0; i < 3; i++) {
      setTimeout(
      (function () {
        var _i = i;
        return function () {
          console.log(_i)
        };
      })(),
     0);
    }

控制台输出:
1
2
3

以上这篇浅析javascript异步执行函数导致的变量变化问题解决思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • js表单序列化判断空值的实例

    js表单序列化判断空值的实例

    下面小编就为大家带来一篇js表单序列化判断空值的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 基于gulp合并压缩Seajs模块的方式说明

    基于gulp合并压缩Seajs模块的方式说明

    本文介绍一个简单可行的办法,来做基于gulp构建的中小型项目中的seajs合并压缩,感兴趣的朋友一起看看详情吧
    2016-06-06
  • javascript删除数组元素的七个方法示例

    javascript删除数组元素的七个方法示例

    这篇文章主要给大家介绍了关于javascript删除数组元素的七个方法,文中通过示例代码介绍的非常详细,对大家学习或者使用javascript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 用js来获取上传的文件名纯粹是为了美化而用

    用js来获取上传的文件名纯粹是为了美化而用

    用js来获取上传的文件名其实纯粹是为了美化,友好。但是,可不是网上流传的那样,用 path.substring()的方法,下面有个不错的示例,感兴趣的朋友可以参考下
    2013-10-10
  • JS中产生标识符方式的演变

    JS中产生标识符方式的演变

    本文记录下JS中产生标识符方式的演变,从ES5到ES6,ES5及其之前是一种方式,只包含两种声明(var/function),ES6则增加了一些产生标识符的关键字,如 let、const、class。
    2015-06-06
  • 浅谈Fetch 数据交互方式

    浅谈Fetch 数据交互方式

    这篇文章主要介绍了浅谈Fetch 数据交互方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 中高级前端必须了解的JS中的内存管理(推荐)

    中高级前端必须了解的JS中的内存管理(推荐)

    这篇文章主要介绍了中高级前端必须了解的JS中的内存管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Bootstrap每天必学之导航

    Bootstrap每天必学之导航

    Bootstrap每天必学之导航,本文讲解的就是大家在做项目时一定会接触到的导航,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“

    JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“

    这篇文章主要介绍了JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JS如何根据条件取出数组中对应项

    JS如何根据条件取出数组中对应项

    这篇文章主要介绍了JS根据条件取出数组中对应项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论