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表单设置值的方法
Jun 30 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
jQuery轻量级表单模型验证插件
Oct 15 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
jquery.pager.js分页实现详解
Jul 29 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
Jquery Fade用法详解
Nov 06 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
jquery设置控件位置的方法
2013/08/21 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python简单日志处理类分享
2015/02/14 Python
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
Python request操作步骤及代码实例
2020/04/13 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
英国绿色商店:Natural Collection
2019/05/03 全球购物
shell的种类有哪些
2015/04/15 面试题
交通工程专业推荐信
2014/09/06 职场文书
2014年政协工作总结
2014/12/09 职场文书
考试作弊检讨
2015/01/27 职场文书
旷课检讨书范文
2015/01/27 职场文书
年会主持人开场白台词
2015/05/29 职场文书
心灵捕手观后感
2015/06/02 职场文书
十月围城观后感
2015/06/08 职场文书
庆七一晚会主持词
2015/06/30 职场文书
记者节感言
2015/08/03 职场文书
工程移交协议书
2016/03/24 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫