国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery中的for循環var與let的區別

2019-11-19 13:59:09
字體:
來源:轉載
供稿:網友

今天在寫jQuery請求接口中發現一個問題:

      在用AJAX發送請求中又嵌套了一個AJAX請求,發現在內層請求的success中對第一次success中的循環變量 i 無法獲取,具體代碼如下:

$.ajax({    type: "get",    url: "http://////////////////////////",    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: "http:///////////////////////////////////",          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的區別 ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 定日县| 隆回县| 沂水县| 大厂| 武冈市| 衡阳县| 右玉县| 沙雅县| 准格尔旗| 黔江区| 宁都县| 普安县| 南华县| 吉木乃县| 隆林| 南充市| 潜山县| 武定县| 盘锦市| 黔江区| 双流县| 乌兰县| 鸡西市| 成武县| 潮州市| 石屏县| 务川| 普安县| 恩施市| 衡东县| 肥乡县| 西宁市| 江津市| 屏东县| 临沂市| 滁州市| 长泰县| 沅陵县| 雷山县| 烟台市|