jQuery中的for循环var与let的区别


Posted in jQuery onApril 21, 2018

今天在写jQuery请求接口中发现一个问题:

   

在用AJAX发送请求中又嵌套了一个AJAX请求,发现在内层请求的success中对第一次success中的循环变量 i 无法获取,具体代码如下:

$.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]是会报错的。

  解决方案:

将for循环中声明变量var i 更改为let i

具体原因:

是第一次回调函数后的for循环中,如果你再次发送请求,for循环并不会停止,即使你写了同步请求也不行。

但是如果你在声明for循环变量用let后,代码会直到你请求完毕,回调函数执行完毕后,再进行下一次的循环。

这就考虑到了一个闭包的问题,如果你写var和let声明的作用域不同。

let i 会以局部变量的形式传递

var i 会以全局变量的形式传递

如果要想将 i 变量传递给下一层,要使用let 去声明。

总结

以上所述是小编给大家介绍的jQuery中的for循环var与let的区别 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

jQuery 相关文章推荐
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
jQuery实现高级检索功能
May 28 jQuery
jquery将json转为数据字典的实例代码
Oct 11 jQuery
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
jquery实现烟花效果(面向对象)
Mar 10 jQuery
jquery更改元素属性attr()方法操作示例
May 22 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 #jQuery
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 #jQuery
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 #jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 #jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 #jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 #jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 #jQuery
You might like
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
php防止sql注入的方法详解
2017/02/20 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Python计算程序运行时间的方法
2014/12/13 Python
Python生成器(Generator)详解
2015/04/13 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
先进党支部事迹材料
2014/01/13 职场文书
元旦联欢会主持词
2014/03/26 职场文书
教学改革实施方案
2014/03/31 职场文书
个人欠款担保书
2014/05/20 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
2015年团支部工作总结
2015/04/03 职场文书
商业计划书格式、范文
2019/03/21 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python
排查MySQL生产环境索引没有效果
2022/04/11 MySQL