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 24 jQuery
使用jQuery卸载全部事件的思路详解
Apr 03 jQuery
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
基于jquery的on和click的区别详解
Jan 15 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
jquery中为什么能用$操作
Jun 18 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
jquery插件实现图片悬浮
Apr 16 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过程中的一些注意点的总结
2013/10/25 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
react-router中的属性详解
2017/06/01 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python实现自动发送邮件功能
2021/03/02 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
Python新手学习raise用法
2020/06/03 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
家长写给老师的建议书
2014/03/13 职场文书
共产党员公开承诺书
2014/03/25 职场文书
文明村镇申报材料
2014/05/06 职场文书
名人演讲稿范文
2014/09/16 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL
微信小程序调用python模型
2022/04/21 Python