首頁 > web前端 > js教程 > 主體

jQuery中for循環var與let使用詳解

php中世界最好的语言
發布: 2018-04-23 11:11:14
原創
2823 人瀏覽過

這次帶給大家jQueryfor循環var與let使用詳解,jQuery中for循環var與let使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

今天在寫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 去聲明。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

js注入使用詳解

JS常用技巧有哪些

以上是jQuery中for循環var與let使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板