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轻松实现无缝轮播效果
Mar 22 jQuery
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
Aug 09 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 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
第十四节--命名空间
2006/11/16 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP的5个安全措施小结
2012/07/17 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
python字典多条件排序方法实例
2014/06/30 Python
python中调试或排错的五种方法示例
2019/09/12 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
生产副总岗位职责
2013/11/28 职场文书
主持词开场白
2014/03/17 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
商场父亲节活动方案
2014/08/27 职场文书
考试保密承诺书
2014/08/30 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
社区服务活动报告
2015/02/05 职场文书
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers