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


Posted in Javascript onMay 13, 2016

浅析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异步执行函数导致的变量变化问题解决思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
xss文件页面内容读取(解决)
Nov 28 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
jQuery中:hidden选择器用法实例
Dec 30 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
jQuery插件支持同一页面被多次调用
Feb 14 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
Dec 04 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
简单的三步vuex入门
May 20 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
May 30 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 Javascript
Javascript基础之数组的使用
May 13 #Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 #Javascript
BootStrap扔进Django里的方法详解
May 13 #Javascript
JavaScript重载函数实例剖析
May 13 #Javascript
JS加载iFrame出现空白问题的解决办法
May 13 #Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 #Javascript
JS iFrame加载慢怎么解决
May 13 #Javascript
You might like
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php中json_encode中文编码问题分析
2011/09/13 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
python的re模块应用实例
2014/09/26 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
Python排序算法实例代码
2017/08/10 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
深入学习python多线程与GIL
2019/08/26 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
python 实现两个npy档案合并
2020/07/01 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
大宝sod蜜广告词
2014/03/21 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
实习指导教师评语
2014/12/30 职场文书
心理健康教育主题班会
2015/08/13 职场文书
DQL数据查询语句使用示例
2022/12/24 MySQL