js循环

1.for in

for...in 循环主要是为了遍历对象而生,不适用于遍历数组

只能获得对象的键名,不能获得键值

可以使用 for...in 循环遍历键名(也可以使用 Object.keys(obj) 方法将对象的键名生成一个数组,然后遍历这个数组)

for...in 循环不仅遍历数字键名,还会遍历手动添加的其它键,甚至包括原型链上的键

可以使用hasOwnProperty() 来过滤原型链上的属性(该方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键))

let arr = [1, 2, 3]
arr.set = 'world'  // 手动添加的键
Array.prototype.name = 'hello'  // 原型链上的键
 
for(let item in arr) {
  console.log('item', item)
}
 
/*
  item 0
  item 1
  item 2
  item set
  item name
*/

2.for of

for...of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象

对于普通对象,没有部署原生的 iterator 接口,直接使用 for...of 会报错

 

posted @ 2020-09-09 17:26  瑞瑞大人  阅读(189)  评论(0编辑  收藏  举报