最近突然發現雖然整天做項目,但是基礎的東西忘得越來越多了,所以我准備沒事就回顧回顧基礎知識,今天來回顧一下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值