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区别相关推荐

  1. jQuery中hover与mouseover和mouseout的区别分析

    本文实例分析了jQuery中hover与mouseover和mouseout的区别.分享给大家供大家参考,具体如下: 以前一直以为在jquery中其实mouseover和mouseout两个事件等于h ...

  2. [jQuery] 谈一下Jquery中的bind(),live(),delegate(),on()的区别?

    [jQuery] 谈一下Jquery中的bind(),live(),delegate(),on()的区别? 在我们深入了解这些方法之前,我们先来一段常见的的HTML,作为我们编写jquery示例方法使 ...

  3. swift中的let和var有什么区别?

    本文翻译自:What is the difference between `let` and `var` in swift? What is the difference between let an ...

  4. jQuery中 parent child 与 ance desc 的区别

    jQuery中< parent > child >与< ance desc >的区别 (1)< ance desc > 使用$("ance desc ...

  5. prototype、JQuery中跳出each循环的方法

    function chk(){         var flag=true;         var msg='';         var tips={'username':'姓名','tel':' ...

  6. jquery中的for循环

    jquery是无法使用for循环遍历的,只能使用他自己封装的each方法进行遍历 如·$("p").each(function(){ alert($(this).text()) } ...

  7. jquery 中 $(document).ready() 与window.onload 的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  8. jQuery中的$(window)与$(document)的用法区别

    [window对象] 它是一个顶层对象,而不是另一个对象的属性,即表示浏览器中打开的窗口. 1.属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个 ...

  9. jQuery中$(document).ready()和window.onload的区别

     $(document) ready()和window onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onlo ...

最新文章

  1. 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
  2. 程序员应知——团队精神(转)
  3. json mysql 字段 默认值_MySQL中的JSON类型
  4. TEEC_Context和TEEC_InitializeContext介绍
  5. 面试官:你知道哪几种事务失效的场景?
  6. 实时音视频助力在线教育风口
  7. c++ 条码打印机句柄画图_FBA发货前期需要准备哪些工作?FBA发货准备工作、打印机要求介绍...
  8. opencv+python视频实时质心显示
  9. PC电脑端QQ如何适应电脑端大小
  10. c#用控制台程序安装启动停止卸载服务
  11. 修炼Python基础篇-set学习
  12. VideoMemory, SystemMemory And AGPMemory
  13. 遗传算法 python_Python实现入门级遗传算法
  14. WinServer2003秘笈放送
  15. android 高通替换开机logo,高通平台 开机logo 替换
  16. python评委打分代码_使用python实现男神女神颜值打分系统(推荐)
  17. 家庭亲戚关系计算器微信小程序源码
  18. 18.1.7 这样真的有点敷衍 37-39
  19. 28.文件目录解析代码实现
  20. 3.1.2随机梯度下降法

热门文章

  1. Flume案例:模拟两个agent之间传递消息的场景
  2. Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim部分配置,相关命令
  3. OA中SSH+JBPM项目整合
  4. Oracle其它数据库对象:视图、序列、同义词
  5. Excel单样本T检验
  6. java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》
  7. Linux驱动编程 step-by-step (三) 字符设备中 重要的数据结构
  8. 推荐10个CI/CD工具,用于云平台集成交付
  9. libgit2 0.28.1 发布,纯 C 实现的可移植 Git 核心开发包
  10. 《Arduino计算机视觉编程》一3.3 总结