jQuery中的for循环var与let区别
1.简述
在用AJAX发送请求中又嵌套了一个AJAX请求,
发现在内层请求的success中对第一次success中
的循环变量 i 无法获取,具体代码如下:
2.代码
$.ajax({type: "get",url: "//",success: function (result) {rs = JSON.parse(result).data;for (var i = 0; i < rs.length; i++) { //用var定义有问题var pos_ = ""$.ajax({type: 'GET',async: false,dataType: 'jsonp',contentType: 'application/json; charset=utf-8',url: "///",success: function (result) {console.log(rs[i]) //报错}})}}
})在第二次的ajax请求后的回调函数中,rs[i]是会报错的。
因为var全局 会时时刻刻的改变回调函数函数内部的i值 ajax就会矛盾了出现错误
因为let局部 for循环的let不会改变ajax函数内部的值 这样ajax就运行正常就正确了!
3.分析
将for循环中声明变量var i 更改为let i具体原因:是第一次回调函数后的for循环中,如果你再次发送请求,for循环并不会停止,即使你写了同步请求也不行。但是如果你在声明for循环变量用let后,代码会直到你请求完毕,回调函数执行完毕后,再进行下一次的循环。这就考虑到了一个闭包的问题,如果你写var和let声明的作用域不同。let i 会以局部变量的形式传递var i 会以全局变量的形式传递如果要想将 i 变量传递给下一层,要使用let 去声明。不会被全局的var进行覆盖!
jQuery中的for循环var与let区别相关推荐
- jQuery中hover与mouseover和mouseout的区别分析
本文实例分析了jQuery中hover与mouseover和mouseout的区别.分享给大家供大家参考,具体如下: 以前一直以为在jquery中其实mouseover和mouseout两个事件等于h ...
- [jQuery] 谈一下Jquery中的bind(),live(),delegate(),on()的区别?
[jQuery] 谈一下Jquery中的bind(),live(),delegate(),on()的区别? 在我们深入了解这些方法之前,我们先来一段常见的的HTML,作为我们编写jquery示例方法使 ...
- swift中的let和var有什么区别?
本文翻译自:What is the difference between `let` and `var` in swift? What is the difference between let an ...
- jQuery中 parent child 与 ance desc 的区别
jQuery中< parent > child >与< ance desc >的区别 (1)< ance desc > 使用$("ance desc ...
- prototype、JQuery中跳出each循环的方法
function chk(){ var flag=true; var msg=''; var tips={'username':'姓名','tel':' ...
- jquery中的for循环
jquery是无法使用for循环遍历的,只能使用他自己封装的each方法进行遍历 如·$("p").each(function(){ alert($(this).text()) } ...
- jquery 中 $(document).ready() 与window.onload 的区别
Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...
- jQuery中的$(window)与$(document)的用法区别
[window对象] 它是一个顶层对象,而不是另一个对象的属性,即表示浏览器中打开的窗口. 1.属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个 ...
- jQuery中$(document).ready()和window.onload的区别
$(document) ready()和window onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onlo ...
最新文章
- 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
- 程序员应知——团队精神(转)
- json mysql 字段 默认值_MySQL中的JSON类型
- TEEC_Context和TEEC_InitializeContext介绍
- 面试官:你知道哪几种事务失效的场景?
- 实时音视频助力在线教育风口
- c++ 条码打印机句柄画图_FBA发货前期需要准备哪些工作?FBA发货准备工作、打印机要求介绍...
- opencv+python视频实时质心显示
- PC电脑端QQ如何适应电脑端大小
- c#用控制台程序安装启动停止卸载服务
- 修炼Python基础篇-set学习
- VideoMemory, SystemMemory And AGPMemory
- 遗传算法 python_Python实现入门级遗传算法
- WinServer2003秘笈放送
- android 高通替换开机logo,高通平台 开机logo 替换
- python评委打分代码_使用python实现男神女神颜值打分系统(推荐)
- 家庭亲戚关系计算器微信小程序源码
- 18.1.7 这样真的有点敷衍 37-39
- 28.文件目录解析代码实现
- 3.1.2随机梯度下降法
热门文章
- Flume案例:模拟两个agent之间传递消息的场景
- Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim部分配置,相关命令
- OA中SSH+JBPM项目整合
- Oracle其它数据库对象:视图、序列、同义词
- Excel单样本T检验
- java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》
- Linux驱动编程 step-by-step (三) 字符设备中 重要的数据结构
- 推荐10个CI/CD工具,用于云平台集成交付
- libgit2 0.28.1 发布,纯 C 实现的可移植 Git 核心开发包
- 《Arduino计算机视觉编程》一3.3 总结