浅析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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
sails框架的学习指南
Dec 22 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
js移动端图片压缩上传功能
Aug 18 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
pycharm的python_stubs问题
2020/04/08 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
用python写PDF转换器的实现
2020/10/29 Python
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
数据管理员的自我评价分享
2013/11/15 职场文书
专科应届生求职信
2013/11/24 职场文书
研讨会通知
2015/04/27 职场文书
介绍信范文大全
2015/05/07 职场文书
SQL CASE 表达式的具体使用
2022/03/21 SQL Server
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers