for in 和 for of 的區別
阿新 • • 發佈:2022-12-09
for of
和 for in
都是用來遍歷的屬性
區別:
-
for...in
語句用於遍歷陣列或者物件的屬性(對陣列或者物件的屬性進行迴圈操作)。 -
for in
得到對物件的key
或陣列,字串的下標 -
for of
和forEach
一樣,是直接得到值 -
for of
不能用於物件
兩者對比
1.遍歷物件
//for...of..遍歷物件會報錯 他遍歷,需要遍歷器Iterator
原因 https://blog.csdn.net/WDCCSDN/article/details/81076397?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88%20for..of...%E4%B8%8D%E8%83%BD%E9%81%8D%E5%8E%86%E5%AF%B9%E8%B1%A1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-81076397.142^v68^control,201^v4^add_ask,213^v2^t3_esquery_v2&spm=1018.2226.3001.4187
const obj = { a: 1, b: 2, c: 3 } for (let i in obj) { console.log(i) //輸出 : a b c } for (let i of obj) { console.log(i) //輸出: Uncaught TypeError: obj is not iterable 報錯了 }
//可以這樣寫
for( var key of Object.key(obj)){
console.log(key + ":" +obj[key])
}
2.遍歷陣列
const arr = ['a', 'b', 'c'] // for in 迴圈 for (let i in arr) { console.log(i) //輸出 0 1 2 } // for of for (let i of arr) { console.log(i) //輸出 a b c }