js循环

1.for in

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

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

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

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

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 会报错

3.forEach

forEach 循环无法中途跳出,break 命令或 return 命令都不能奏效

(break、continue、return的区别 break:结束当前的循环(比如for、while) continue:跳出本次循环,继续执行下次循环 return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的)

原文地址:https://www.cnblogs.com/wangxirui/p/13640132.html