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.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
JQuery animate动画应用示例
May 14 jQuery
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
jQuery实现手风琴特效
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
Yii框架form表单用法实例
2014/12/04 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
javascript 闭包详解
2015/02/15 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
js实现上传并压缩图片效果
2018/01/10 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python ansible服务及剧本编写
2017/12/29 Python
用Python实现读写锁的示例代码
2018/11/05 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
汽车专业毕业生自荐信
2013/11/03 职场文书
海飞丝广告词
2014/03/20 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
语文教师求职信范文
2015/03/20 职场文书
MySQL创建管理子分区
2022/04/13 MySQL
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技