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

发布时间:2024年01月06日

在 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`,可以返回结果。
?

文章来源:https://blog.csdn.net/Mxy18851251178/article/details/135421602
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。