JS中的for…of和for…in有什么区别?

for…in 遍历对象键,for…of 遍历可迭代值。1. for…in 用于遍历对象的键名,适用于对象和数组,但遍历数组时可能包含原型链属性,需配合 hasownproperty 使用;2. for…of 用于遍历可迭代对象(如数组、字符串、map等)的值,更直观安全,但不适用于普通对象;3. 若需同时获取键和值,可用 object.entries() + for…of;4. 根据数据类型选择合适方式:对象用 for…in,可迭代结构用 for…of。

JS中的for...of和for...in有什么区别?

在JavaScript中,for...of 和 for...in 看起来很像,但它们的作用和适用对象完全不同。简单来说,for...in 用于遍历对象的键(key),而 for...of 用于遍历可迭代对象的值(value)。

for...in:遍历对象的键

for...in 主要用于遍历对象的可枚举属性名(也就是键)。它适用于普通对象、数组也可以用,但使用时需要注意一些细节。

const obj = { a: 1, b: 2, c: 3 };for (let key in obj) {  console.log(key); // 输出 'a', 'b', 'c'}

常见用途和注意事项:

遍历的是键名,不是值,所以需要通过 obj[key] 来获取值。不建议直接用于数组遍历时,因为:它遍历的是索引(字符串形式),但还可能包括原型链上的属性。顺序不一定可靠(虽然ES6后基本有序了)。使用前最好加上 hasOwnProperty 判断,避免遍历到继承来的属性。

for (let key in obj) {  if (obj.hasOwnProperty(key)) {    console.log(obj[key]);  }}

for...of:遍历可迭代对象的值

for...of 只能用于可迭代对象,比如数组、字符串、Map、Set、NodeList等。

const arr = [10, 20, 30];for (let value of arr) {  console.log(value); // 输出 10, 20, 30}

特点和适用场景:

直接拿到值,不需要再通过索引来取。更适合数组、字符串这种有顺序的结构。不适用于普通对象,除非给对象设置了 Symbol.iterator。

如果你写 for…of 遍历一个普通对象,会报错:“obj is not iterable”。

哪个更适合我?

这个问题取决于你要遍历的对象类型和目的:

场景 推荐方式 原因

遍历对象的属性for...in能获取到键名,配合 hasOwnProperty 安全遍历数组/字符串/集合等for...of简洁、直观地获取值想要同时获取键和值?Object.entries() + for...of例如:for (let [key, val] of Object.entries(obj))

小贴士:别混淆了!

for...in 是为对象设计的,但也能“凑合”遍历数组,只是容易出问题。for...of 更现代,更安全,但不能用于普通对象。如果你不小心把 for...of 用在非可迭代对象上,浏览器会报错。

基本上就这些区别。记住它们各自的用途,根据数据结构选择合适的方式就行。

以上就是JS中的for…of和for…in有什么区别?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1505623.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JS中的JSON.parse和JSON.stringify有什么用?
上一篇 2025年12月20日 03:50:55
js中if判断如何实现短路评估
下一篇 2025年12月20日 03:51:10

相关推荐

  • 俄版搜索引擊主页yandex入口 俄罗斯浏览器搜索引擎入口yandex链接

    俄版搜索引擊主页yandex入口 俄罗斯浏览器搜索引擎入口yandex链接俄版搜索引擊主页yandex入口 俄罗斯浏览器搜索引擎入口yandex链接俄版搜索引擊主页yandex入口 俄罗斯浏览器搜索引擎入口yandex链接俄版搜索引擊主页yandex入口 俄罗斯浏览器搜索引擎入口yandex链接

    Yandex,被誉为“俄罗斯的谷歌”,是该国最大的互联网技术公司和搜索引擎。本文将为您清晰介绍Yandex的主要官方入口链接,并简要说明其核心功能,帮助您快速了解和使用这个强大的信息工具。 一、Yandex是什么? 1、立即进入“☞☞☞☞点击俄版搜索引擊主页yandex入口☜☜☜☜”; 2、立即进入…

    2026年9月26日 • 用户投稿
    000
  • 英特尔 NUC 主机程序崩溃?三星 SSD 主控老化掉速诊断​

    英特尔 NUC 主机程序崩溃?三星 SSD 主控老化掉速诊断​英特尔 NUC 主机程序崩溃?三星 SSD 主控老化掉速诊断​英特尔 NUC 主机程序崩溃?三星 SSD 主控老化掉速诊断​英特尔 NUC 主机程序崩溃?三星 SSD 主控老化掉速诊断​

    英特尔 nuc 主机程序崩溃,很可能是三星 ssd 主控老化掉速引起。1. 通过检查系统日志查看是否有磁盘错误信息;2. 使用 crystaldiskinfo 等工具读取 smart 信息判断 ssd 健康状态;3. 尝试更换 ssd 验证是否为原 ssd 问题。若确认为 ssd 老化掉速,可优化 …

    2026年9月26日 • 用户投稿
    000
  • yandex搜索引擎入口地址 yandex网页入口引擎直达

    yandex搜索引擎入口地址 yandex网页入口引擎直达yandex搜索引擎入口地址 yandex网页入口引擎直达yandex搜索引擎入口地址 yandex网页入口引擎直达yandex搜索引擎入口地址 yandex网页入口引擎直达

    Yandex作为一款功能强大的搜索引擎,尤其在图像搜索和东欧语系内容方面表现出色,是许多用户的优选工具。本文将为您提供Yandex网页版的核心入口地址,并解析不同入口的特点,帮助您根据需求快速、直接地访问。 1、立即进入“☞☞☞☞点击yandex搜索引擎入口地址☜☜☜☜”; 2、立即进入“☞☞☞☞点…

    2026年9月26日 • 用户投稿
    000
  • uc浏览器后台播放视频怎么设置_UC浏览器实现视频后台播放技巧

    uc浏览器后台播放视频怎么设置_UC浏览器实现视频后台播放技巧uc浏览器后台播放视频怎么设置_UC浏览器实现视频后台播放技巧uc浏览器后台播放视频怎么设置_UC浏览器实现视频后台播放技巧uc浏览器后台播放视频怎么设置_UC浏览器实现视频后台播放技巧

    UC浏览器支持后台播放,需开启悬浮窗权限或使用小窗/画中画功能。首先在设置中为UC浏览器授权“显示在其他应用上层”,播放视频后点击小窗按钮进入浮动窗口模式;若未自动触发,可手动在菜单选择“小窗播放”;同时在系统设置中启用画中画权限,并确保UC浏览器为最新版本,以实现锁屏或切换应用时持续播放。 如果您…

    2026年9月26日 • 用户投稿
    000
  • uc浏览器夸克网盘入口在哪里_UC浏览器内置夸克网盘功能入口

    uc浏览器夸克网盘入口在哪里_UC浏览器内置夸克网盘功能入口uc浏览器夸克网盘入口在哪里_UC浏览器内置夸克网盘功能入口uc浏览器夸克网盘入口在哪里_UC浏览器内置夸克网盘功能入口uc浏览器夸克网盘入口在哪里_UC浏览器内置夸克网盘功能入口

    1、打开UC浏览器并登录账号,向下滑动首页查找“常用服务”或“工具箱”中的夸克网盘图标;2、若未找到,点击右上角“三”图标,在菜单中查找网盘、云盘或“我的文件”选项;3、仍无结果时,可在顶部搜索框输入“夸克网盘”,从推荐服务中点击“直达”链接进入;4、最后检查设置中的“插件管理”,确保夸克网盘插件已…

    2026年9月26日 • 用户投稿
    100
  • 如何在Debian中自定义GitLab界面

    在debian中自定义gitlab界面可以通过以下几种方式进行: 更改界面语言为中文 登录GitLab并进入设置:打开浏览器,访问GitLab的URL。使用管理员账号登录。点击右上角的用户头像,选择“Settings”(设置)。修改用户界面语言:在左侧导航栏中找到“Preferences”(偏好设置…

    2026年9月26日
    100
  • UC浏览器怎么开启桌面版网页_UC浏览器桌面版网页开启方法

    1、打开UC浏览器点击右上角三点菜单,勾选“桌面版”即可切换;2、通过设置中的“浏览器标识”选择“桌面”模式可默认加载桌面版网页;3、长按地址栏并选择“请求桌面版网站”也能快速切换。 如果您在使用UC浏览器时发现网页显示为移动版,部分内容无法正常查看或操作,可能需要切换至桌面版模式以获得更完整的页面…

    2026年9月26日
    000
  • 京东商户需要提供仓库信息吗_京东商户仓库信息填写及物流要求指南

    京东商户需要提供仓库信息吗_京东商户仓库信息填写及物流要求指南京东商户需要提供仓库信息吗_京东商户仓库信息填写及物流要求指南京东商户需要提供仓库信息吗_京东商户仓库信息填写及物流要求指南京东商户需要提供仓库信息吗_京东商户仓库信息填写及物流要求指南

    京东商户需根据自营或POP模式确定仓库责任,POP商家须在后台填写真实仓库信息并选择物流方式,确保24小时内发货以满足平台时效要求。 如果您计划在京东平台开设店铺并提供商品,平台会根据您的经营模式对仓储和物流提出相应要求。不同的合作模式决定了您是否需要自行提供仓库信息以及具体的物流执行方式。以下是关…

    2026年9月26日 • 用户投稿
    100
  • 安装 Windows 10 和 Windows 11 双系统,需要单独分区吗?

    安装 Windows 10 和 Windows 11 双系统,需要单独分区吗?安装 Windows 10 和 Windows 11 双系统,需要单独分区吗?安装 Windows 10 和 Windows 11 双系统,需要单独分区吗?安装 Windows 10 和 Windows 11 双系统,需要单独分区吗?

    安装双系统必须为每个系统创建独立分区,以确保稳定性和数据安全。首先备份数据,通过磁盘管理工具压缩现有分区,腾出未分配空间并新建分区用于第二个系统。推荐先安装Windows 10,再安装Windows 11,以便其自动识别旧系统并配置启动菜单。每个系统分区建议100GB以上,可额外创建共享数据分区。若…

    2026年9月26日 • 用户投稿
    000
  • Java微服务分布式事务实战:TCC模式与Seata框架深度整合

    Java微服务分布式事务实战:TCC模式与Seata框架深度整合Java微服务分布式事务实战:TCC模式与Seata框架深度整合Java微服务分布式事务实战:TCC模式与Seata框架深度整合Java微服务分布式事务实战:TCC模式与Seata框架深度整合

    TCC模式结合Seata框架是微服务中实现分布式事务的可靠方案,通过Try-Confirm-Cancel机制将事务控制提升至业务层,Seata以@GlobalTransactional和@TwoPhaseBusinessAction注解简化事务协调,实现资源的预留、确认与回滚,解决数据一致性难题。 …

    2026年9月26日 • 用户投稿
    200
  • UC浏览器兼容模式在哪里设置_UC浏览器兼容模式设置入口及开启方法

    UC浏览器兼容模式在哪里设置_UC浏览器兼容模式设置入口及开启方法UC浏览器兼容模式在哪里设置_UC浏览器兼容模式设置入口及开启方法UC浏览器兼容模式在哪里设置_UC浏览器兼容模式设置入口及开启方法UC浏览器兼容模式在哪里设置_UC浏览器兼容模式设置入口及开启方法

    1、可通过设置旧版UA标识提升兼容性;2、切换至省流模式或关闭极速模式以适配特殊网页;3、更改内核为兼容或Blink内核并刷新页面解决显示异常。 如果您在使用UC浏览器访问某些网页时遇到显示异常或功能无法正常使用的情况,可能是由于浏览器的渲染模式与网页不兼容。此时可以通过切换兼容模式来解决问题。 本…

    2026年9月26日 • 用户投稿
    000
  • windows无法设置默认pdf阅读器怎么办 无法设置默认pdf阅读器的解决方法

    windows无法设置默认pdf阅读器怎么办 无法设置默认pdf阅读器的解决方法windows无法设置默认pdf阅读器怎么办 无法设置默认pdf阅读器的解决方法windows无法设置默认pdf阅读器怎么办 无法设置默认pdf阅读器的解决方法windows无法设置默认pdf阅读器怎么办 无法设置默认pdf阅读器的解决方法

    1、通过系统设置将PDF阅读器设为默认应用,若无效则使用“按文件类型指定默认应用”功能精确绑定;2、以管理员身份运行PDF阅读器并修复文件关联;3、修改注册表中.pdf对应的应用标识符,同时更新HKEY_CURRENT_USER下的Classes设置;4、使用管理员权限的命令行工具,通过assoc和…

    2026年9月26日 • 用户投稿
    300
  • sublime有哪些必装的插件_sublime推荐必装插件清单

    sublime有哪些必装的插件_sublime推荐必装插件清单sublime有哪些必装的插件_sublime推荐必装插件清单sublime有哪些必装的插件_sublime推荐必装插件清单sublime有哪些必装的插件_sublime推荐必装插件清单

    Sublime Text通过插件可大幅提升效率,建议安装Package Control以方便管理插件;SideBarEnhancements增强侧边栏功能,支持文件快速操作;Emmet和代码片段插件提升前端开发速度,实现HTML/CSS/JS的高效编写;Git集成插件支持版本控制操作,GitGutt…

    2026年9月26日 • 用户投稿
    200
  • 为什么视频流媒体需要特定编码格式?

    为什么视频流媒体需要特定编码格式?为什么视频流媒体需要特定编码格式?为什么视频流媒体需要特定编码格式?为什么视频流媒体需要特定编码格式?

    视频流媒体需特定编码格式,因其能高效压缩原始视频数据并确保跨设备兼容。编码格式通过去除冗余信息,在保证画质前提下显著降低码率,提升传输效率。H.264、H.265、AV1等标准支持自适应比特率(ABR)流媒体,实现不同网络条件下流畅播放。同时,编码格式影响画质表现、色彩深度、HDR支持及音频优化,兼…

    2026年9月26日 • 用户投稿
    100
  • 在哪里查看iCloud储存空间_iCloud储存空间查看方法与入口介绍

    在哪里查看iCloud储存空间_iCloud储存空间查看方法与入口介绍在哪里查看iCloud储存空间_iCloud储存空间查看方法与入口介绍在哪里查看iCloud储存空间_iCloud储存空间查看方法与入口介绍在哪里查看iCloud储存空间_iCloud储存空间查看方法与入口介绍

    iCloud同步变慢通常因存储接近上限,可通过iPhone、iPad、Mac、Windows或iCloud.com查看使用情况。1、在iOS设备中进入“设置”-“Apple ID”-“iCloud”-“管理储存空间”查看各应用占用;2、在Mac上通过“系统设置”-“Apple ID”-“iCloud…

    2026年9月26日 • 用户投稿
    100
  • Chrome浏览器如何模拟不同的地理位置_地理位置信息模拟设置方法

    Chrome浏览器如何模拟不同的地理位置_地理位置信息模拟设置方法Chrome浏览器如何模拟不同的地理位置_地理位置信息模拟设置方法Chrome浏览器如何模拟不同的地理位置_地理位置信息模拟设置方法Chrome浏览器如何模拟不同的地理位置_地理位置信息模拟设置方法

    通过Chrome开发者工具可模拟地理位置,用于测试网页应用在不同地区的表现。首先按F12打开开发者工具,进入Sensors面板,将Geolocation设为Custom location并输入经纬度(如37.7749, -122.4194),刷新页面即可生效。为避免权限弹窗,可通过命令行启动Chro…

    2026年9月26日 • 用户投稿
    100
  • x浏览器怎么看视频的时候小窗播放_x浏览器视频画中画模式使用教程

    x浏览器怎么看视频的时候小窗播放_x浏览器视频画中画模式使用教程x浏览器怎么看视频的时候小窗播放_x浏览器视频画中画模式使用教程x浏览器怎么看视频的时候小窗播放_x浏览器视频画中画模式使用教程x浏览器怎么看视频的时候小窗播放_x浏览器视频画中画模式使用教程

    首先启用X浏览器内置画中画功能,播放视频后退出全屏并点击“小窗”图标即可悬浮播放;若不支持,可前往系统设置开启Safari的画中画选项,返回X浏览器播放时按主屏键触发系统级小窗;还可通过App Store下载浮屏播放器类第三方工具,安装后授权辅助功能,侧滑调出控制器提取视频流实现浮窗播放。 如果您在…

    2026年9月26日 • 用户投稿
    000
  • 小红书网页版怎么添加商品_小红书网页版电商功能使用教程

    小红书网页版怎么添加商品_小红书网页版电商功能使用教程小红书网页版怎么添加商品_小红书网页版电商功能使用教程小红书网页版怎么添加商品_小红书网页版电商功能使用教程小红书网页版怎么添加商品_小红书网页版电商功能使用教程

    小红书网页版添加商品需先登录官网,进入商家中心完成认证后,在商品管理页面填写信息、上传图片、设置价格库存并完善详情描述,最后通过优化标题关键词、关联话题标签、更新封面图、发布种草笔记及参与促销活动提升曝光。 小红书网页版怎么添加商品?这是不少网友都关注的,接下来由PHP小编为大家带来小红书网页版电商…

    2026年9月26日 • 用户投稿
    600
  • 利用 Deepseek 满血版与 Kapwing,在线编辑创意视频​

    利用 Deepseek 满血版与 Kapwing,在线编辑创意视频​利用 Deepseek 满血版与 Kapwing,在线编辑创意视频​利用 Deepseek 满血版与 Kapwing,在线编辑创意视频​利用 Deepseek 满血版与 Kapwing,在线编辑创意视频​

    deepseek ai在视频创意生成中的独特优势体现在其强大的联想发散能力、内容结构化梳理能力以及多模态理解与生成潜力。①它能从一个关键词联想到多个具体场景并生成详细描述,突破创意瓶颈;②可自动生成分镜脚本、旁白文案及时间轴建议,提升叙事逻辑性;③具备从抽象概念到执行指导的转化能力,辅助视觉与音乐风…

    2026年9月26日 • 用户投稿
    1900
  • Safari浏览器怎么阻止网站访问我的位置_Safari浏览器地理位置权限管理设置

    Safari浏览器怎么阻止网站访问我的位置_Safari浏览器地理位置权限管理设置Safari浏览器怎么阻止网站访问我的位置_Safari浏览器地理位置权限管理设置Safari浏览器怎么阻止网站访问我的位置_Safari浏览器地理位置权限管理设置Safari浏览器怎么阻止网站访问我的位置_Safari浏览器地理位置权限管理设置

    关闭Safari位置权限可保护隐私,先通过系统设置禁用定位服务中的Safari权限,再在Safari设置中单独管理特定网站的位置访问,最后清除已保存的权限记录以重置所有站点的授权状态。 如果您在使用 Safari 浏览器时发现某些网站请求获取您的位置信息,可能会影响隐私安全。为了防止不必要的追踪,您…

    2026年9月26日 • 用户投稿
    400

发表回复

登录后才能评论
关注微信