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卸载全部事件的思路详解
Apr 03 jQuery
jQuery.form.js的使用详解
Jun 14 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery实现左右两个列表框的内容相互移动功能示例
Jan 27 jQuery
JQuery属性操作与循环用法示例
May 15 jQuery
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
Js四则运算函数代码
2012/07/21 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python选择排序算法实例总结
2015/07/01 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
中秋寄语大全
2014/04/11 职场文书
个人委托书范文
2015/01/28 职场文书
仓管员岗位职责
2015/02/03 职场文书
驳回起诉裁定书
2015/05/19 职场文书
2015年机关党委工作总结
2015/05/23 职场文书