jQuery での for ループ var の使用と let の使用の違いは何ですか?

php中世界最好的语言
リリース: 2018-04-27 13:55:59
オリジナル
1851 人が閲覧しました

今回は、forループvarを使用する場合とjQueryでletを使用する場合の違い、forループvarを使用する場合とjQueryでletを使用する場合の注意事項

について説明します。実際のケースを見てみましょう。見て 。えー、今日、jQuery リクエスト インターフェイスの記述で問題が見つかりました:

AJAX 送信リクエストの使用で Ajax リクエストがネストされており、内層リクエストの最初の成功のループ変数 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]) //报错
          }
        })
      }
    }
  })
ログイン後にコピー
2 番目の ajax リクエスト後の

コールバック関数 では、rs[i] がエラーを報告します。

解決策:

for ループで宣言した変数 var i を変更してください。

具体的な理由:

最初のコールバック関数の後の for ループ内にあるため、再度リクエストを送信すると、 forループ 同期リクエストを書いても止まりません。

ただし、for ループ変数を宣言した後に let を使用すると、リクエストが完了してコールバック関数が実行されるまで、コードは次のループを開始しません。

これは、var 宣言と let 宣言を異なるスコープで記述する場合のクロージャの問題を考慮しています。

let i はローカル変数として渡されます

var i はグローバル変数として渡されます

i 変数を次の層に渡したい場合は、let を使って宣言します。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

乱数メソッドのJS概要

nodeJSモジュールの使用手順の詳細な説明

以上がjQuery での for ループ var の使用と let の使用の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート