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 EasyUI之验证框validatebox实例详解
Apr 10 jQuery
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
基于jQuery实现瀑布流页面
Apr 11 jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
jquery中为什么能用$操作
Jun 18 jQuery
jQuery zTree插件使用简单教程
Aug 16 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 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/07/08 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
Python中functools模块的常用函数解析
2016/06/30 Python
python 使用get_argument获取url query参数
2017/04/28 Python
django文档学习之applications使用详解
2018/01/29 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
windows下python安装pip方法详解
2020/02/10 Python
浅谈Python中的模块
2020/06/10 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
工作鉴定评语
2014/05/04 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
教学质量月活动总结
2015/05/11 职场文书
开业典礼致辞
2015/07/29 职场文书
2015年教师国培感言
2015/08/01 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
Python sklearn分类决策树方法详解
2022/09/23 Python