浅析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异步执行函数导致的变量变化问题解决思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解JavaScript中JSON.stringify方法
JSON 对象是我们经常使用的一种数据存储对象,它的适用范围非常广,JSON.stringify 方法可以帮我们把一个对象或数组转换成一个 JSON字符串,本文我们给大家详细介绍一下JavaScript中JSON.stringify方法,需要的朋友可以参考下
2023-09-09
JS学习笔记之贪吃蛇小游戏demo实例详解
这篇文章主要介绍了JS学习笔记之贪吃蛇小游戏demo,结合实例形式详细分析了javascript实现贪吃蛇小游戏的原理、步骤与相关实现技巧,需要的朋友可以参考下
2019-05-05
JavaScript文件上传的常见问题整理
这篇文章整理了JavaScript文件上传的常见问题,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-06-06
利用JavaScript编写Python内置函数查询工具
Python有丰富的内置函数实现各种功能,但查询内置函数时总是需要百度查,有没有一个小工具可以单机无网络查询Python内置函数,方便自己学习编写Python程序呢?本文就来用JavaScript编写一个
2023-02-02
使用js正则表达式验证文件扩展名方法实例
文件上传时,为了安全验证,对于手工改动文件后缀名产生的伪造文件进行判断过滤,下面这篇文章主要给大家介绍了关于如何使用js正则表达式验证文件扩展名的相关资料,需要的朋友可以参考下
2022-11-11
JavaScript代码实现春晚刘谦魔术的模拟程序
昨晚春晚上刘谦的两个魔术表演都非常精彩,尤其是第二个魔术,他演绎了经典的约瑟夫环问题!约瑟夫环是一个经典的数学问题,本文给出了完整的 JavaScript 代码实现,感兴趣的同学可以自己动手实现一下
2024-02-02
最新评论