for in & for of

for in

迭代一个对象的所有可枚举字符串属性(除 Symbol以外),包括继承的可枚举属性。

遍历拿到的是索引

Object.prototype.a = function(){
  console.log('aaa');
}
Array.prototype.b = function(){
  console.log('bbb');
}
const arr = [1,2,3];
// 遍历拿到的是索引
for(const key in arr){ 
  console.log(key); // 1,2,3,a,b
}

for of

执行一个循环,该循环处理来自可迭代对象的值序列。可迭代对象包括内置对象的实例,例如 ArrayStringTypedArrayMapSetNodeList(以及其他 DOM 集合),还包括 arguments 对象、由生成器函数生成的生成器,以及用户定义的可迭代对象。

遍历拿到的是值

const arr = ['11','22','33'];
for(const value of arr){
  console.log(value); // 11,22,33
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容