1. 程式人生 > 其它 >for in 和 for of 的區別

for in 和 for of 的區別

for of 和 for in都是用來遍歷的屬性

區別:

  1. for...in 語句用於遍歷陣列或者物件的屬性(對陣列或者物件的屬性進行迴圈操作)。
  2. for in得到對物件的key或陣列,字串的下標
  3. for offorEach一樣,是直接得到值
  4. 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
   }