我們一般來說,使用for…in來遍歷物件,使用for…of來遍歷陣列
總之,for…in 迴圈主要是為了遍歷物件而生,不適用於遍歷陣列
for…of 迴圈可以用來遍歷陣列、類陣列物件,字串、set、map 以及 generator 物件
我們強烈建議不要使用for…in來遍歷陣列
為什麼???
因為for…in遍歷的是物件的key或者是陣列的下標。當然最重要的原因是,他會到原型鏈上尋找,遍歷其中新增加的屬性的key值
for of遍歷的是陣列元素值,
for in 遍歷的是陣列的索引(即鍵名)
for of遍歷的只是陣列內的元素,
for in 遍歷的不只是陣列內的元素,還有其新增的原型屬性和索引
for of 遍歷
array.prototype.
method
=function()
var myarray=[11
,21,41
,51,61
,71]myarray.name=
"陣列"
;for
(var value of myarray)
//輸出陣列每項的值:11,21,41,51,61,71
for in 遍歷
array.prototype.
method
=function()
var myarray=[11
,21,41
,51,61
,71]myarray.name=
"陣列"
;for
(var value in myarray)
// 輸出資料的下標以及新增屬性和方法: 0,1,2,3,4,5,method,name
總結
1因為我們的for…in會遍歷出拓展的方法和屬性,所以當我們對array進行擴充套件的時候,會列印出來,就比較的尷尬,不知所措
2我們的for…in得到的是key值,如果是陣列的話,得到的是字串型別的key值,如果這個時候進行下標操作的話,可能會出現奇奇怪怪的問題
for…in和for…of都可以使用break,continue的操作
基礎 MSDN 不指定邊界遍歷陣列
visual basic 文件 參考 語言參考 語句 a h for each next 語句 visual basic 文件 參考 可捕獲的錯誤 核心 visual basic 語言錯誤 下標越界 錯誤 9 針對乙個陣列或集合中的每個元素,重複執行一組語句。語法 foreachelement in...
為什麼我不推薦敏捷開發?
當專案成員越多,我越不推薦敏捷開發,原因在於 當連自己要做什麼事 為什麼這樣做 這樣做為了解決什麼問題 都搞不清楚前,就跳下去玩敏捷開發,那和比通靈還慘,通靈起碼還有個目標物在前面,搞不清楚狀況的人只能陪他跳世界迷霧開地圖了 敏捷開發 mba智庫百科 最下方有段 對敏捷開發的誤解 可順便參考 敏捷軟...
為什麼不推薦使用外來鍵?
外來鍵的優點 一 資料一致性 由資料庫自身保證資料一致性 完整性會更可靠,程式很難100 保證資料的一致性 完整性 二 er圖可靠性 有主外來鍵的資料庫設計可以增加er圖的可讀性 外來鍵的缺點 一 級聯問題 阿里巴巴的開發手冊中,就曾指出強制要求不允許使用外來鍵,一切外來鍵概念必須在應用層解決。因為...