浅析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 相关文章推荐
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
May 16 Javascript
Actionscript与javascript交互实例程序(修改)
Sep 22 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
基于游标的分页接口实现代码示例
Nov 12 Javascript
详解vue 2.6 中 slot 的新用法
Jul 09 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
Vue中常用rules校验规则(实例代码)
Nov 14 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 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
php桌面中心(四) 数据显示
2007/03/11 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
BootStrap selectpicker
2016/06/20 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
Python性能优化技巧
2015/03/09 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python数据结构之列表和元组的详解
2017/09/23 Python
python http接口自动化脚本详解
2018/01/02 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
测绘工程专业求职信
2014/07/15 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
大学军训通讯稿
2015/07/18 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL