今回は、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]) //报错 } }) } } })
コールバック関数 では、rs[i] がエラーを報告します。
解決策:
for ループで宣言した変数 var i を変更してください。 具体的な理由: 最初のコールバック関数の後の for ループ内にあるため、再度リクエストを送信すると、 forループ 同期リクエストを書いても止まりません。 ただし、for ループ変数を宣言した後に let を使用すると、リクエストが完了してコールバック関数が実行されるまで、コードは次のループを開始しません。 これは、var 宣言と let 宣言を異なるスコープで記述する場合のクロージャの問題を考慮しています。 let i はローカル変数として渡されます var i はグローバル変数として渡されます i 変数を次の層に渡したい場合は、let を使って宣言します。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:以上がjQuery での for ループ var の使用と let の使用の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。