本文實例分析了js的for in循環和java裡foreach循環的區別。分享給大家供大家參考。具體分析如下:
js裡的for in循環定義如下:
復制代碼 代碼如下:for(var variable in obj) { ... }
obj可以是一個普通的js對象或者一個數組。如果obj是js對象,那麼variable在遍歷中得到的是對象的屬性的名字,而不是屬性對應的值。如果obj是數組,那麼variable在遍歷中得到的是數組的下標。
遍歷對象實驗:
復制代碼 代碼如下:var v = {};
v.field1 = "a";
v.field2 = "b";
for(var v in v) {
console.log(v);
}
控制台下輸出:
field1
field2
遍歷數組實驗:
復制代碼 代碼如下:var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (var x in mycars){
console.log(x);
}
控制台輸出:
0
1
2
拿java的foreach循環來做對比,有兩大差別。首先java的foreach循環不會去枚舉一個java對象的屬性。其次,java的foreach循環枚舉一個數組或者任何實現了Iterable接口的對象的時候,for(Object o : list), 對象o得到的是list一個元素,而非在列表中的下標。
java的遍歷代碼就不貼出來了。經常寫後台代碼,foreach循環很熟悉。寫前台js代碼的時候,難免會套用java的語法,所以第一次用js的for in循環的時候犯錯了。這次總結清楚,以後就不會犯錯誤了。
希望本文所述對大家的javascript程序設計有所幫助。