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 ajax请求struts action实现异步刷新
Apr 19 jQuery
jQuery常用选择器详解
Jul 17 jQuery
jquery实现左右轮播图效果
Sep 28 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jquery的$().each和$.each的区别
Jan 18 jQuery
使用jQuery实现掷骰子游戏
Oct 24 jQuery
jquery实现垂直手风琴菜单
Mar 04 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 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
PHP出错界面
2006/10/09 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
js继承的实现代码
2010/08/05 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python实现登录接口的示例代码
2017/07/21 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python requests指定出口ip的例子
2019/07/25 Python
PyTorch-GPU加速实例
2020/06/23 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
const和static readonly区别
2013/05/20 面试题
幼儿园保教管理制度
2014/02/03 职场文书
餐厅筹备计划书
2014/04/25 职场文书
关于工作经历的证明书
2014/10/11 职场文书
中班教师个人总结
2015/02/05 职场文书
护士先进个人总结
2015/02/13 职场文书
单位考核鉴定意见
2015/06/05 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js
DSP接收机前端设想
2022/04/05 无线电