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

for in 和 for of 的區別

最近突然發現雖然整天做專案,但是基礎的東西忘得越來越多了,所以我準備沒事就回顧回顧基礎知識,今天來回顧一下for in 和for of的區別

 

首先來看for in 

  for in 可以用來遍歷陣列,但是會有以下幾個問題

  1.index索引為字串型數字,不能直接進行幾何運算

  2.遍歷順序有可能不是按照實際陣列的內部順序

  3.使用for in會遍歷陣列所有的可列舉屬性,例如下面例子上的原型方法method和name屬性都會被遍歷出來

Array.prototype.method  = function(){
    console.log(
this.length) } var myArray = [1,2,3,4,5] myArray.name = "陣列"
  for (var key in myArray) {             console.log(key)         }

 運送結果:

如果我們不想要method和name呢,這樣的話我們可以使用ES6的for of

特別注意:for in 遍歷的是陣列的索引(即鍵名),for of遍歷的是value值