for迴圈遍歷時var let的區別

2022-07-07 07:51:09 字數 763 閱讀 2383

for (var i = 0; i < 10; i++)

輸出:但是,如果我在迴圈時同時呼叫wx的api介面10次,那麼輸出的結果就會不同(這是產生了閉關的效應)

for (var i = 0; i < 10; i++)

1213

})14

15 }

輸出:可以看到輸出了10次10,這是因為i自變數的作用域範圍,在這裡它相當於全域性變數。

可以理解為乙個儲存單元與與分配的所以下屬儲存單元都相通(自己的理解)

解決方法:

1、使用臨時函式(相容所有)

for (var i = 0; i < 10; i++)

1415

})16

17})(i);

1819 }

等同於for (var i = 0; i < 10; i++)

1415

})16

17};

1819

temp(i);

2021 }

輸出:2、使用es6中let的塊作用域(推薦)(低版本ie不相容)

for (let i = 0; i < 10; i++)

1213

})14

15 }

輸出:但是如果將let i定義在函式外部,則對於迴圈來說還是相當於全域性變數

let i;23

for (i = 0; i < 10; i++)

1415

})16

17 }

結果還是:

Python 遍歷時刪除的處理 說明

遍歷時,建議不能直接進行remove刪除,會跳過某些元素 例項 a 1,2,3,4,5 for i in a a.remove i print a a 1,2,3,4,5 for i in a a.remove i print a 結果 2,4 remove 移除列表中某個值的第乙個匹配項 s 1,...

SQL游標遍歷時的變數賦值

今天遇到乙個錯誤,自己一直沒有意思到這樣寫是錯誤的。在游標迴圈過程中使用變數要注意 declare a select a column1 from table1 where column2 123 if a is null begin end原以為如果找不到 123 的記錄,變數 a 會被賦成nul...

List遍歷時刪除遇到的問題

這週在開發中遇到了乙個以前沒遇到的小bug,在這裡記錄下來。list集合,我們平時都經常使用。但是,我在遍歷list集合時,呼叫了list集合的remove方法來刪除集合中的元素,簡單的 結構是這樣 for string x list 但是,就是類似這樣乙個簡單的小程式,在執行時,遇到了如下的異常資...