返回

谈谈js中常见的循环迭代:for循环、forEach、for...in... for...of...

前端

在JavaScript中,循环迭代是经常用到的操作,它可以让我们遍历数组、对象和其他数据结构。在JavaScript中,有几种不同的循环迭代方法,包括 for 循环、forEach、for...in... 和 for...of...。每种方法都有自己的特点和使用场景。

for 循环

for 循环是最基本也是最常用的循环迭代方法。它的语法如下:

for (let i = 0; i < array.length; i++) {
  // 循环体
}

for 循环的循环变量 i 从 0 开始,每次循环递增 1,直到 i 等于 array.length。在每次循环中,循环体会执行一次。

forEach

forEach 是数组的内置方法,它可以用来遍历数组中的每个元素。它的语法如下:

array.forEach((element, index, array) => {
  // 循环体
});

forEach 的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。forEach 方法不会返回任何值。

for...in...

for...in... 循环可以用来遍历对象的可枚举属性。它的语法如下:

for (let property in object) {
  // 循环体
}

for...in... 循环的循环变量 property 是对象的可枚举属性的名称。在每次循环中,循环体会执行一次。

for...of...

for...of... 循环可以用来遍历数组、字符串和Set和Map数据结构。它的语法如下:

for (let element of array) {
  // 循环体
}

for...of... 循环的循环变量 element 是数组、字符串或Set和Map数据结构中的元素。在每次循环中,循环体会执行一次。

比较

这四种循环迭代方法各有优缺点。下表对它们进行了比较:

循环迭代方法 优点 缺点
for 循环 最基本、最常用的循环迭代方法 冗长
forEach 简洁、易用 不能使用 break 和 continue 语句
for...in... 可以遍历对象的可枚举属性 不能遍历数组
for...of... 可以遍历数组、字符串和Set和Map数据结构 不能使用 break 和 continue 语句

使用建议

根据不同的使用场景,我们可以选择不同的循环迭代方法。

  • 如果需要遍历数组,可以使用 forEach 或 for...of... 循环。
  • 如果需要遍历对象的可枚举属性,可以使用 for...in... 循环。
  • 如果需要使用 break 或 continue 语句,可以使用 for 循环。

兼容性

for 循环、forEach 和 for...in... 循环在所有浏览器中都是兼容的。for...of... 循环在IE11及更高版本中是兼容的。