for...in 和 for...of 的区别

for...in 和 for...of 都是 JavaScript 中的循环语句,但它们的作用和使用方式略有不同。

1、for..in 循环

for..in 循环用于遍历对象的可枚举属性,它会将对象的每个属性名称(或键名)作为迭代变量来遍历。

以下是 for...in 的基本语法

javascript 复制代码
for (variable in object) {
}

其中,variable 表示每次迭代中当前属性的名称(或键名),object 表示要遍历的对象。

javascript 复制代码
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
  console.log(key, obj[key]);
}

// a  1
// b  2
// c  3

需要注意的是,for...in 循环遍历的是对象的可枚举属性,包括自有属性和继承属性。

因此,它并不适用于遍历数组和类数组对象。

2、for...of 循环

for...of 循环用于遍历可迭代对象的元素,它会将对象的每个元素作为迭代变量来遍历。

以下是 for..of 的基本语法:

javascript 复制代码
for (variable of iterable) {
}

其中,variable 表示每次迭代中当前元素的值,iterable 表示要遍历的可迭代对象,如数组、字符串、Set、Map 等。

javascript 复制代码
const arr = [1, 2, 3];
for (const item of arr) { 
    console.log(item);
}
// 1
// 2
// 3

需要注意的是,for...of 循环只能遍历实现了选代器接口 (lterator) 的对象,因此它不适用于普通的对象。

此外,它遍历的是对象的元素值,而不是键名或属性名

3、总结

for...in 适用于遍历对象的属性名,而 for...of 适用于遍历数组、字符串等可迭代对象的元素值。

相关推荐
前端双越老师11 分钟前
程序员 1v1 访谈系列第二期:很焦虑但又不知道干啥
前端·ai编程·全栈
广州华水科技25 分钟前
北斗形变监测传感器在大坝安全监测中的应用与优势分析
前端
孔令飞32 分钟前
如何学习Go
前端
HUIBUR科技36 分钟前
AI 中枢,面向企业场景构建的 AI 智能体
前端·数据库·人工智能
怕浪猫43 分钟前
给AI配一台电脑,开源版Muse来了,OpenMuse赶紧去二次开发吧
javascript·面试·github
随便写个软件1 小时前
【新版本】EasyExplorer资源管理器 3.12.0——地址栏重要更新
运维·服务器·前端·everything·资源管理器
Jack N1 小时前
【Strapi 系列之二】Collection / Single / Component 怎么选?Strapi 字段大全一篇讲透
前端·javascript·strapi
hiahiahia1231 小时前
Agent Tool 执行失败怎么办
服务器·前端
Java后端的Ai之路1 小时前
09-React组件生命周期
前端·react.js·前端框架
IT_陈寒1 小时前
SpringBoot开发实战:从入门到精通
前端·人工智能·后端