理解 ECMAScript 2021 中的 for-in 和 for-of 循环的区别

在 ECMAScript 2021 中,我们可以使用 for-in 和 for-of 循环来遍历 JavaScript 中的对象和数组。虽然这两种循环看起来很相似,但它们之间有一些重要的区别,本文将帮助你深入了解这些区别。

for-in 循环

for-in 循环是用于遍历对象属性的一种方法。它的语法如下:

--- ---- --- -- ------- -
  -- ---
-

其中,key 是对象的属性名,object 是要遍历的对象。在循环体中,我们可以使用 key 访问对象的属性值。

下面是一个简单的示例,我们使用 for-in 循环遍历对象 person 的属性:

--- ------ - -
  ---------- -------
  --------- ------
  ---- --
--

--- ---- --- -- ------- -
  --------------- - -- - - -------------
-

输出结果如下:

---------- ----
--------- ---
---- --

需要注意的是,for-in 循环不仅遍历对象自身的属性,还会遍历对象原型链上的属性。

for-of 循环

for-of 循环是用于遍历数组和类数组对象的一种方法。它的语法如下:

--- ---- ----- -- --------- -
  -- ---
-

其中,value 是数组或类数组对象的元素值,iterable 是要遍历的对象。在循环体中,我们可以使用 value 访问元素的值。

下面是一个简单的示例,我们使用 for-of 循环遍历数组 numbers 的元素:

--- ------- - --- -- -- -- ---

--- ---- ----- -- -------- -
  -------------------
-

输出结果如下:

-
-
-
-
-

需要注意的是,for-of 循环只会遍历数组或类数组对象自身的元素,不会遍历对象原型链上的属性。

区别总结

通过上面的介绍,我们可以得出 for-in 循环和 for-of 循环的区别:

  • for-in 循环用于遍历对象的属性,包括原型链上的属性;
  • for-of 循环用于遍历数组和类数组对象的元素,不包括原型链上的属性。

总结

通过本文的介绍,我们了解了 ECMAScript 2021 中 for-in 循环和 for-of 循环的区别。在实际开发中,我们需要根据具体的需求选择合适的循环方式,以便更好地处理数据。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65dc21731886fbafa490a069