JavaScript中for-in遍歷方式示例介紹
更新時間:2014年02月11日 10:12:02 作者:
for-in遍歷方式的循環(huán)計數(shù)器是字符串類型,遍歷對象時為對象屬性/方法名,遍歷數(shù)組時為數(shù)組元素下標索引,與普通的for循環(huán)不同,需要的朋友可以參考下
摘要:for-in遍歷方式的循環(huán)計數(shù)器是字符串類型,遍歷對象時為對象屬性/方法名,遍歷數(shù)組時為數(shù)組元素下標索引,與普通的for循環(huán)不同,for-in會將繼承的屬性/方法列出,這一點在使用時需要特別關注。
除了傳統(tǒng)的for循環(huán),JavaScript為遍歷操作定義了for-in方式,根據(jù)數(shù)據(jù)源的不同,在使用時存在差異。
(1)遍歷對象:
var fish = {
head : 1,
tail : 1,
}
for(var prop in fish) {
console.log(fish[prop]);
}
調試時觀察:prop依次為'head','tail',即遍歷對象屬性時是以字符串類型存在的,循環(huán)計數(shù)器為對象的屬性名。
(2)遍歷數(shù)組
var arr = ['one', 'two', 'three'];
for(var prop in arr) {
console.log(prop);
}
調試時觀察:prop依次為'0','1',即遍歷數(shù)組時仍是以字符串類型存在,不同的是循環(huán)計數(shù)器為數(shù)組元素的下標。(這時可以試試用for循環(huán)輸出,結果與for-in是一致的)
如果代碼中加入:
if(Object.prototype.clone === 'undefined')
Object.prototype.clone = function() {};
則輸出結果為:0,1,clone
如果這時用for循環(huán)輸出,則仍為0,1;也就是說for-in循環(huán)會將當前操作的數(shù)據(jù)源所屬類型具有的屬性遍歷出來(同樣對對象fish用for-in時,也會輸出clone),所以就要求在使用for-in遍歷時拉著一根弦:如果僅對對象自有屬性操作,需要將繼承來的屬性加以剔除,比如用hasOwnProperty()方法。
除了傳統(tǒng)的for循環(huán),JavaScript為遍歷操作定義了for-in方式,根據(jù)數(shù)據(jù)源的不同,在使用時存在差異。
(1)遍歷對象:
復制代碼 代碼如下:
var fish = {
head : 1,
tail : 1,
}
for(var prop in fish) {
console.log(fish[prop]);
}
調試時觀察:prop依次為'head','tail',即遍歷對象屬性時是以字符串類型存在的,循環(huán)計數(shù)器為對象的屬性名。
(2)遍歷數(shù)組
復制代碼 代碼如下:
var arr = ['one', 'two', 'three'];
for(var prop in arr) {
console.log(prop);
}
調試時觀察:prop依次為'0','1',即遍歷數(shù)組時仍是以字符串類型存在,不同的是循環(huán)計數(shù)器為數(shù)組元素的下標。(這時可以試試用for循環(huán)輸出,結果與for-in是一致的)
如果代碼中加入:
復制代碼 代碼如下:
if(Object.prototype.clone === 'undefined')
Object.prototype.clone = function() {};
則輸出結果為:0,1,clone
如果這時用for循環(huán)輸出,則仍為0,1;也就是說for-in循環(huán)會將當前操作的數(shù)據(jù)源所屬類型具有的屬性遍歷出來(同樣對對象fish用for-in時,也會輸出clone),所以就要求在使用for-in遍歷時拉著一根弦:如果僅對對象自有屬性操作,需要將繼承來的屬性加以剔除,比如用hasOwnProperty()方法。
您可能感興趣的文章:
- jQuery的Each比JS原生for循環(huán)性能慢很多的原因
- javascript for循環(huán)設法提高性能
- JS常用的幾種數(shù)組遍歷方式以及性能分析對比實例詳解
- JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解
- JS數(shù)組的遍歷方式for循環(huán)與for...in
- js中的for如何實現(xiàn)foreach中的遍歷
- JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹
- JavaScript forEach()遍歷函數(shù)使用及介紹
- javascript forEach通用循環(huán)遍歷方法
- JS 使用for循環(huán)遍歷子節(jié)點查找元素
- javascript for循環(huán)性能測試示例
相關文章
JavaScript中判斷數(shù)據(jù)類型的方法總結
這篇文章主要為大家詳細介紹了一些JavaScript中判斷數(shù)據(jù)類型的方法,文中的示例代碼講解詳細,具有一定的學習價值,需要的小伙伴可以了解一下2023-07-07詳解Javascript中document.execCommand()的用法以及指令參數(shù)列表
execCommand方法是執(zhí)行一個對當前文檔,當前選擇或者給出范圍的命令。在HTML5中,execCommand可以通過JavaScript代碼來調用,使得開發(fā)者可以在網(wǎng)頁中實現(xiàn)一些復雜的文本操作。在HTML編輯器中這個命令用得很多,酷炫的強大功能。2023-07-07