for..in 的遍歷實際上是物件的屬性名稱,乙個array陣列也是乙個物件,陣列的每個元素的索引被視為屬性名稱,所以可以看到使用for...in 迴圈array陣列,拿到的其實是每個元素的索引
var a = [ 'a' , 'b', 'c' ];
a.name = ' hello ' ;
for (var i in a ){
alert ( i ) // '0' , '1' , '2' , 'name'
當為a手動新增乙個屬性name的時候,for...in迴圈會把name屬性也包括在內,而array的length屬性卻不包括在內,for...of迴圈的是可迭代物件的value
for...of 它只是迴圈集合本身的元素
for in迴圈和for of迴圈區別
for in語句用於遍歷物件,而for of語句用於遍歷陣列,但這不是必須的,只是這樣操作比較方便。var arr 1,2,3,4,5,6,7 申明乙個陣列 for var x in arr 執行結果 var arr 1,2,3,4,5,6,7 宣告乙個純數字陣列 for var value of ...
for of迴圈與for in迴圈的區別
const arr red green blue arr.foreach function element,index var arr a b c d for let a in arr for let a of arr let arr 3 5,7 arr.foo hello for let i in...
for in 和 for of 的對比
fon in和for of最大的區別就是 乙個是對鍵名key的遍歷,乙個是對鍵值value的遍歷 使用for in也能遍歷陣列,但會存在一些問題 index索引為字串型數字,不能直接進行幾何運算 和遍歷順序物件的行為一樣,使用for in會遍歷陣列所有可列舉的屬性,所以原型物件上的方法和屬性也會被遍...