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