JavaScript:for of 与for in的区别

这篇具有很好参考价值的文章主要介绍了JavaScript:for of 与for in的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

for of 和 for in 都是JavaScript中用于遍历对象或集合的循环结构,但它们的目的和用法有所不同:

相同点:

都是用来遍历数据结构,可以用来处理数组、Set、Map等可迭代对象或对象属性。

区别

1、遍历对象的性质不同

for in 语句主要用于遍历对象的可枚举属性,包括对象自身的属性和从原型链继承的属性。
for of 语句则是遍历实现了可迭代协议(Iterable Protocol)的对象,如数组、Set、Map、String、Generator对象等。它不会遍历对象的属性,而是遍历对象的各个元素或值。

2、循环变量的含义不同

for in 循环中的迭代变量将依次获取对象的属性名。
for of 循环中的迭代变量将依次获取可迭代对象的元素值。

3、使用场景不同

当需要遍历数组元素或可迭代对象的值时,使用 for of 更合适。
当需要遍历对象的所有属性(包括可能继承的属性)时,使用 for in 更合适。

// 对于数组:
let array = ['apple', 'banana', 'cherry'];

// 使用 for of 遍历数组元素:
for (let item of array) {
  console.log(item); // 输出 'apple', 'banana', 'cherry'
}

// 使用 for in 不适合遍历数组,但也可用(不推荐):
for (let key in array) {
  console.log(array[key]); // 输出数组的索引字符串 '0', '1', '2'
}

// 对于对象:
let obj = { a: 1, b: 2, c: 3 };

// 使用 for in 遍历对象属性:
for (let prop in obj) {
  console.log(prop); // 输出 'a', 'b', 'c'
  console.log(obj[prop]); // 输出 1, 2, 3
}

// 使用 for of 无法直接遍历对象,但可以借助Object.values/Object.entries:
for (let value of Object.values(obj)) {
  console.log(value); // 输出 1, 2, 3
}

总之,for of 主要用于遍历,而 for in 主要用于遍历键(属性名)。在实际编程中,应根据具体需要选择合适的遍历方式。

另外在vue中

v-for="(item, index) of items" :key="item.id"
v-for="(item, index) in items" :key="item.id"
//两者是等效的,item是value,index是key。均用于遍历数组、Set、Map或其他可迭代对象
//循环生成的元素应该添加一个唯一的key属性,如果没有这样的唯一标识符,也可以使用index作为key

Vue官方文档更多时候是使用in关键字作为示例,建议使用in文章来源地址https://www.toymoban.com/news/detail-838395.html

到了这里,关于JavaScript:for of 与for in的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你理解了for-in 和 for-of 吗?他们有什么区别?

    【前言】 在 JavaScript 中,for 循环语句是编写复杂程序时经常使用的一种工具。其中,for-in 和 for-of 是两个最常用的变体。尽管这两者非常相似,但它们在迭代对象方面有所不同。在本文中,我们将探讨 for-in 和 for-of 的不同之处,以及如何正确使用它们。 【正文】 一、for-

    2024年02月09日
    浏览(36)
  • javascript基础二十四:JavaScript中本地存储的方式有哪些?区别及应用场景?

    一、方式 javaScript本地缓存的方法我们主要讲述以下四种: cookie sessionStorage localStorage indexedDB cookie Cookie,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据。是为了解决 HTTP无状态导致的问题 作为一段一般不超过 4KB 的小型文本数据,它

    2024年02月08日
    浏览(63)
  • javascript基础四:== 和 ===区别,分别在什么情况使用?

    一、等于操作符 等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true 前面文章,我们提到在JavaScript中存在隐式转换。等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等 遵循以下规则: 如果任一操作数是布尔值,则将其转换为数值再比较

    2024年02月07日
    浏览(45)
  • 开发语言漫谈-JavaScript

           JavaScript、Java名字很相近,但它们没有任何亲缘关系,是由不同公司开发的编程语言。Java由Sun公司(后被Oracle收购)开发,JavaScript最初是由Netscape公司开发的(当年浏览器的霸主)。JavaScript最初的名字是 LiveScript,Netscape将其命名为 JavaScript,无非是蹭 Java流量。当

    2024年04月16日
    浏览(50)
  • ArcGIS API for JavaScript 4.x 教程(二)切换基础地图图层

    了解如何更改地图中的基础地图图层。 基础地图图层: 基础地图层是用于访问和显示来自基础地图层服务的数据的层。它为地图或场景提供视觉和地理上下文,通常包含具有管理边界和地名的全局数据。 基本地图图层服务提供了许多基本地图图层样式,例如地形、街道和图

    2024年02月14日
    浏览(35)
  • 〖大前端 - 基础入门三大核心之JS篇⑯〗- JavaScript的流程控制语句「for循环语句及算法题」

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月07日
    浏览(51)
  • 【 Python 全栈开发 - WEB开发篇 - 26 】Javascript 基础

    Javascript 是一种动态的、基于对象的编程语言,通常用于网页的客户端脚本编程。它可以在网页上实现交互效果、动态效果、表单验证、数据处理等功能。 学习 Javascript 可以通过以下途径: 在线教程:像 w3schools、MDN 等网站提供了详细的 Javascript 教程和示例代码。 书籍:可以

    2024年02月08日
    浏览(39)
  • 建站系列(五)--- 前端开发语言之HTML、CSS、JavaScript

    建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— 网络协议 建站系列(四)— Web服务器之Apache、Nginx 建站系列(五)— 前端开发语言之HTML、CSS、JavaScript 建站系列(六)— 后端开发语言 建站系列(七)— 常用前后端框架

    2024年02月09日
    浏览(56)
  • HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发的JavaScript基础)

    ArkTS 是HarmonyOS(鸿蒙操作系统)原生应用开发的首选语言。它是用于构建用户界面的一种TypeScript方言,扩展了TypeScript以适应HarmonyOS生态系统的UI开发需求。ArkTS 融合了TypeScript的静态类型系统和现代UI框架的设计理念,为开发者提供了一种更安全高效的方式来编写HarmonyOS应用。

    2024年02月20日
    浏览(56)
  • [HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 数据类型 数据类型-字符型 数据类型-数值型 数据类型-布尔型 数据类型-其它类型 变量 转义字符 运算

    2024年02月20日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包