js的for in循環(huán)和java里foreach循環(huán)的區(qū)別分析
本文實(shí)例分析了js的for in循環(huán)和java里foreach循環(huán)的區(qū)別。分享給大家供大家參考。具體分析如下:
js里的for in循環(huán)定義如下:
obj可以是一個普通的js對象或者一個數(shù)組。如果obj是js對象,那么variable在遍歷中得到的是對象的屬性的名字,而不是屬性對應(yīng)的值。如果obj是數(shù)組,那么variable在遍歷中得到的是數(shù)組的下標(biāo)。
遍歷對象實(shí)驗(yàn):
v.field1 = "a";
v.field2 = "b";
for(var v in v) {
console.log(v);
}
控制臺下輸出:
field1
field2
遍歷數(shù)組實(shí)驗(yàn):
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)枚舉一個數(shù)組或者任何實(shí)現(xiàn)了Iterable接口的對象的時(shí)候,for(Object o : list), 對象o得到的是list一個元素,而非在列表中的下標(biāo)。
java的遍歷代碼就不貼出來了。經(jīng)常寫后臺代碼,foreach循環(huán)很熟悉。寫前臺js代碼的時(shí)候,難免會套用java的語法,所以第一次用js的for in循環(huán)的時(shí)候犯錯了。這次總結(jié)清楚,以后就不會犯錯誤了。
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Javascript判斷對象是否相等實(shí)現(xiàn)代碼
想判斷2個js對象,是不是所有完全相同在表單頁面應(yīng)用是很常見的,接下來分享一段判斷代碼,感興趣的你可以參考下哈,希望可以幫助到你2013-03-03基于JS實(shí)現(xiàn)頁面懸浮框的實(shí)例代碼
這篇文章主要介紹了基于JS實(shí)現(xiàn)頁面懸浮框的實(shí)例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12JS在Array數(shù)組中按指定位置刪除或添加元素對象方法示例
這篇文章主要給大家介紹了關(guān)于JS在Array數(shù)組中按指定位置刪除或添加元素對象的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11JavaScript正則表達(dá)式中g(shù)標(biāo)志詳解
正則的思想都是一樣的,但是具體的寫法會有所不同,下面這篇文章主要給大家介紹了關(guān)于JavaScript正則表達(dá)式中g(shù)標(biāo)志的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03深入淺析javascript立即執(zhí)行函數(shù)
在Javascript中,任何function在執(zhí)行的時(shí)候都會創(chuàng)建一個執(zhí)行上下文,因?yàn)闉閒unction聲明的變量和function有可能只在該function內(nèi)部,這個上下文,在調(diào)用function的時(shí)候,提供了一種簡單的方式來創(chuàng)建自由變量或私有子function。2015-10-10js 關(guān)鍵詞高亮(根據(jù)ID/tag高亮關(guān)鍵字)案例介紹
關(guān)鍵詞高亮在開發(fā)中會帶來很多的方便,關(guān)鍵詞高亮包括:根據(jù)ID高亮關(guān)鍵字/根據(jù)Tag名高亮關(guān)鍵字等等,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01