填坑十萬個為什麼?(10)

NO IMAGE

簡介:很多概念不清或忘記,重新構建自己的知識體系。每天問自己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);
});

填坑十萬個為什麼?(10)

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

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

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

使用for-of的優勢:

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

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

for(item of array){
    console.log(item);
}

2.學習for-of

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

①for…of與for…in的區別

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

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

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

相關文章

填坑十萬個為什麼?(14)

填坑十萬個為什麼?(13)

填坑十萬個為什麼?(12)

填坑十萬個為什麼?(11)