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插件之validation插件
Mar 29 jQuery
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
JQuery实现图片轮播效果
May 08 jQuery
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
JS实现选项卡插件的两种写法(jQuery和class)
Dec 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截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
信号生成及DFT的python实现方式
2020/02/25 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
优秀本科生求职推荐信
2014/02/24 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
同学联谊会邀请函
2019/06/24 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android