填坑-十萬個爲何?(10)

簡介:不少概念不清或忘記,從新構建本身的知識體系。天天問本身1~多個問題。我是菜鳥 成爲大神之路!數組

1. JavaScript中數組遍歷及方法推薦

var array = ["one","two","three"];
複製代碼
for循環 【推薦⭐⭐⭐⭐】
for(var i = 0,len = array.length;i < len;i++){
    console.log(array[i]);
}
複製代碼
for-in【推薦⭐】
'若是數組是稀疏數組,使用該方法遍歷的次數最少'
var xshu = [];
xshu[1] = "one";
xshu[66] = "two";
xshu[999] = "three";
'for-in 遍歷 3次'
'for 循環遍歷 10000 次'

for(index in array){
    console.log(array[index]);
}
複製代碼
Array.prototype.forEach()【推薦⭐⭐⭐】
array.forEach(function(item,index,arr){
    console.log(item,index,arr);
});
複製代碼

④ for-of(ES6中新增)【推薦⭐⭐⭐】

它的出現主要是爲了解決ES5中3種遍歷方式的缺陷: forEach 不能break 或者returnbash

for-in 的缺點: 它不只遍歷了數組中的元素,還遍歷了自定義屬性,甚至連原型鏈上的屬性都被訪問到。ide

使用for-of的優點:
學習

①這是最簡潔、直接遍歷數組的方式
②這個方法避開了for-in循環的缺陷
③與forEach不一樣,它能夠正確響應break,continue,return 語句。
複製代碼

缺點:
for-of不支持普通對象遍歷,只能遍歷可迭代對象ui

for(item of array){
    console.log(item);
}
複製代碼

2.學習for-of

for...of語句在可迭代對象(包括 Array,Map,Set,String,TypedArray,arguments 對象等等)上建立一個迭代循環,調用自定義迭代鉤子,併爲每一個不一樣屬性的值執行語句spa

①for...of與for...in的區別

😂for...in 語句以原始插入順序迭代對象的可枚舉屬性。
😂for...of 語句遍歷可迭代對象定義要迭代的數據。prototype

②什麼是可迭代對象 link<此知識 第11天學習>

參考文章:
www.jianshu.com/p/c43f418d6…
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…code

相關文章
相關標籤/搜索