填坑-十万个为什么?(10)

514 阅读1分钟

简介:很多概念不清或忘记,重新构建自己的知识体系。每天问自己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 或者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/…