詳解Js里的for…in和for…of的用法
之前看編程方法學(xué),for循環(huán)的基本格式是
for(init;test;step ){ statement } //例如 for(int i=0,i<10;i++){ ... }
后來(lái)接觸了python,for循環(huán)的格式更加的簡(jiǎn)單優(yōu)雅,只要一個(gè)for ……in語(yǔ)句就可以直接遍歷對(duì)象。
for i in arry
今天看廖雪峰的官網(wǎng),居然看到了js里更神奇的操作,for ……of循環(huán),這個(gè)類似于python的for ……in循環(huán)了,雖然js里也有for ……in循環(huán),可是遍歷的是對(duì)象的屬性,類似于鍵值對(duì)里的鍵key,當(dāng)它遍歷array的時(shí)候遍歷的是array的索引,
var a = ['A', 'B', 'C']; for (var i in a) { alert(i); // '0', '1', '2' alert(a[i]); // 'A', 'B', 'C' }
or … of循環(huán)是ES6引入的新的語(yǔ)法,用for … of循環(huán)遍歷集合,用法如下:
var a = ['A', 'B', 'C']; var s = new Set(['A', 'B', 'C']); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); for (var x of a) { // 遍歷Array alert(x);//'A', 'B', 'C' } for (var x of s) { // 遍歷Set alert(x);//'A', 'B', 'C' } for (var x of m) { // 遍歷Map alert(x[0] + '=' + x[1]);//1='x',2='y',3='z' }
for … in循環(huán)由于歷史遺留問(wèn)題,它遍歷的實(shí)際上是對(duì)象的屬性名稱。一個(gè)Array數(shù)組實(shí)際上也是一個(gè)對(duì)象,它的每個(gè)元素的索引被視為一個(gè)屬性。
當(dāng)我們手動(dòng)給Array對(duì)象添加了額外的屬性后,for … in循環(huán)將帶來(lái)意想不到的意外效果:
var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x in a) { alert(x); // '0', '1', '2', 'name' }
for … in循環(huán)將把name包括在內(nèi),但Array的length屬性卻不包括在內(nèi)。
for … of循環(huán)則完全修復(fù)了這些問(wèn)題,它只循環(huán)集合本身的元素:
var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x of a) { alert(x); // 'A', 'B', 'C' }
以上所述是小編給大家介紹的Js里的for…in和for…of的用法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JS數(shù)組遍歷中for,for in,for of,map,forEach各自的使用方法與優(yōu)缺點(diǎn)
- JavaScript 中for/of,for/in 的詳細(xì)介紹
- JS中for,for...in,for...of和forEach的區(qū)別和用法實(shí)例
- JavaScript中三種for循環(huán)語(yǔ)句的使用總結(jié)(for、for...in、for...of)
- 通過(guò)實(shí)例解析JavaScript for in及for of區(qū)別
- js中forEach,for in,for of循環(huán)的用法示例小結(jié)
- js遍歷詳解(forEach, map, for, for...in, for...of)
- 全面解析JavaScript里的循環(huán)方法之forEach,for-in,for-of
- javascript中for...of和for..in循環(huán)的區(qū)別
相關(guān)文章
javascript實(shí)現(xiàn)的圖片切割多塊效果實(shí)例
這篇文章主要介紹了javascript實(shí)現(xiàn)的圖片切割多塊效果,涉及javascript操作圖片及css樣式的技巧,需要的朋友可以參考下2015-05-05JavaScript 中的執(zhí)行上下文和執(zhí)行棧實(shí)例講解
這篇文章主要介紹了JavaScript 中的執(zhí)行上下文和執(zhí)行棧實(shí)例講解,文中實(shí)例講解的很清晰,有感興趣的同學(xué)可以研究下2021-02-02JavaScript中的關(guān)聯(lián)數(shù)組問(wèn)題
這篇文章主要介紹了JavaScript中的關(guān)聯(lián)數(shù)組問(wèn)題的相關(guān)資料,需要的朋友可以參考下2015-03-03常用的Javascript數(shù)據(jù)驗(yàn)證插件
本文主要介紹的是常用的Javascript數(shù)據(jù)驗(yàn)證插件,包括電話號(hào)碼驗(yàn)證,郵件驗(yàn)證,身份證驗(yàn)證,需要的朋友可以參考下2015-08-08