首页 > web前端 > js教程 > JavaScript 的 `for...in` 和 `for...of` 循环之间的主要区别是什么?

JavaScript 的 `for...in` 和 `for...of` 循环之间的主要区别是什么?

Susan Sarandon
发布: 2024-12-14 09:53:11
原创
865 人浏览过

What's the Key Difference Between JavaScript's `for...in` and `for...of` Loops?

理解 for...in 和 for...of 语句之间的区别

在 JavaScript 循环领域,for.. .in 和 for...of 语句经常会产生混乱。虽然 for...in 一直是迭代属性的基石,但 for...of 在 ES6 中出现是为了专门针对值。本文深入探讨了这两种构造之间的主要区别。

for...in:遍历属性名称

For...in 循环迭代可枚举属性对象的名称。如示例所示,它成功记录了“0”、“1”、“2”和“foo”,它们代表数组的索引键和数组对象的“foo”键。

for...of:提取属性值

相反,for...of 使用特定于对象的迭代器来遍历该迭代器生成的值。在示例中,数组迭代器仅生成数组内的值,即“3”、“5”和“7”。这种行为源于迭代器被设计为仅关注值的事实。

非索引属性的非迭代

值得注意的是, for...of 确实不迭代非索引属性。在示例中,未记录包含值“hello”的“foo”属性。这是因为数组迭代器仅生成与数组索引关联的值。

示例:以值为中心的迭代

为了说明这一点,以下循环应记录数组值以及“foo”属性值,但它仅记录数组值:

for (var i of arr) {
  console.log(i); // logs "3", "5", "7"
}
登录后复制

此行为强化了了解 for...of 是专门为迭代值而构建的,不包括非索引属性。

以上是JavaScript 的 `for...in` 和 `for...of` 循环之间的主要区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板