js的循环中foreach、for in和for of的区别

在 JavaScript 中,‘forEach’、‘for...in’和 ‘for...of ’是用于循环遍历数组或类数组对象的不同方式,它们有以下区别:

1. forEach:
   - 适用于数组和类数组对象。
   - 无法使用 break或 continue跳出循环。
   - 不能获取当前元素的索引值。
   - 不能使用 return 返回结果。

示例:

var arr = [1, 2, 3];
arr.forEach(function(item) {
  console.log(item);
});

 

2. for...in:
   - 适用于遍历对象的属性,包括继承的可枚举属性。
   - 可以遍历数组,但是会遍历数组的索引(字符串类型)而非元素本身。
   - 遍历顺序不确定,可能会出现无序遍历的情况。
   - 可以使用 break 和 continue控制循环流程。

   示例:

var obj = {a: 1, b: 2, c: 3};
for (var key in obj) {
  console.log(key + ': ' + obj[key]);
}

3. for...of:
   - 适用于遍历可迭代对象,如数组、字符串、Set、Map 等。
   - 遍历的是对象的值而非索引。
   - 可以使用 break 和 continue控制循环流程。
   - 可以使用 return 返回结果。

   示例: 

var arr = [1, 2, 3];
for (var item of arr) {
  console.log(item);
}

总结:
- `forEach` 适用于数组和类数组对象,无法使用 `break` 或 `continue`,不能获取索引值,不能返回结果。
- `for...in` 适用于遍历对象的属性,也可以遍历数组的索引,可以使用 `break` 和 `continue`。
- `for...of` 适用于遍历可迭代对象,遍历的是对象的值,可以使用 `break` 和 `continue`,可以返回结果。

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值