JavaScript中的for...in 、for...of、foreach

初學(xué)javaScript的時(shí)候,我們總是容易混淆對于數(shù)組和對象的遍歷方法。js中循環(huán)語句有forEach,for in,for of 三種。網(wǎng)上有很多資料,對于剛開始接觸js的童鞋們來說講的有點(diǎn)過深,不一定能看的明白,所以在這這里我們通俗的解釋一下,希望能幫助到大家。

總結(jié):

1、對于數(shù)組來說,for-of 遍歷的數(shù)組的value值,也就是數(shù)組元素的值。而for-in則遍歷的是數(shù)組的鍵值,也就是數(shù)組的index。foreach也遍歷的是數(shù)組的value值,但與for-in不同的是:在遍歷的過程中不能被終止,必須每一個值遍歷一遍后才能停下來,即在foreach遍歷的過程中,不支持相應(yīng)的break,continue退出循環(huán)和不能使用return語句返回到外層。

for-in:

1、for-in主要用來遍歷對象的屬性,包括對象繼承自原型對象的屬性。常用在遍歷擁有enumerable屬性的對象。

enumerable(可枚舉)形如:{name:sugar,sex:female};

2、但是?。”M量不要用for-in遍歷數(shù)組:原因主要是,for-in主要得到數(shù)組的鍵,但該鍵的類型確是String類型,代碼如下:


結(jié)果為String。所以如果你自我認(rèn)為index是數(shù)字類型,繼而用來做相關(guān)的計(jì)算,則會得到不一樣的結(jié)果。最讓人震驚的是,在某些情況下,這段代碼可能按照隨機(jī)順序遍歷數(shù)組元素。所以for-in主要是用來循環(huán)帶有字符串key的對象的方法。

for-of:作為ES6中新出的循環(huán)方法,比for-in,foreach有很多優(yōu)勢。

1、可以遍歷多種類型的數(shù)據(jù)。是最簡單的遍歷數(shù)組的方法,語法如下:


2、彌補(bǔ)了foreach在循環(huán)過程中不能被中斷的缺點(diǎn)。

3、還可以遍歷字符串,類型化的數(shù)組(TypedArray),ES6新出的Map,Set類型的數(shù)據(jù),同時(shí)利用object.key()可以用來遍歷具有enumerable屬性的數(shù)據(jù)。

希望對大家有幫助哈~歡迎大家指正

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容