循环for - in 和 for - of 的异同

embedded/2024/12/23 2:12:07/

for...infor...of 是两种用于迭代的循环结构,它们有不同的用途和行为。下面是它们的主要区别:

for...in

  • 用途: for...in 用于遍历对象的可枚举属性。

  • 遍历内容: 它遍历对象的键(属性名),包括继承的属性(通过原型链)。

  • 适用对象: 适合用于对象的属性遍历,不适用于数组或其他可迭代对象。

  • 注意: 遍历顺序是无保证的,不一定是插入顺序。它也会遍历从原型链继承的属性。

  • 用法

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

for...of

  • 用途: for...of 用于遍历可迭代对象(如数组、字符串、集合、映射等)。

  • 遍历内容: 它遍历的是可迭代对象的值。

  • 适用对象: 适合用于数组、字符串、MapSet 和其他实现了迭代协议的对象。

  • 注意: 遍历顺序是与插入顺序一致的。

  • 用法

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

关键区别总结

  • 迭代对象:

    • for...in 迭代对象的属性名。
    • for...of 迭代可迭代对象的值。
  • 适用场景:

    • for...in 主要用于对象的属性。
    • for...of 主要用于数组、字符串及其他可迭代对象。
  • 继承属性:

    • for...in 会遍历对象及其原型链上的可枚举属性。
    • for...of 不会遍历原型链上的属性,仅关注对象的实际值。

注意: 在编程中,for...of 更常用于数组和其他可迭代对象的遍历,而 for...in 主要用于遍历对象的属性。

JavaScript基础


http://www.ppmy.cn/embedded/97920.html

相关文章

ceph如何增删改查的管理文件

1.创建 Ceph 存储库文件 sudo tee /etc/yum.repos.d/ceph.repo <<EOF [ceph] nameCeph packages for $basearch baseurlhttps://download.ceph.com/rpm-pacific/el8/\$basearch/ enabled1 gpgcheck1 typerpm-md gpgkeyhttps://download.ceph.com/keys/release.asc[ceph-…

机器学习笔记 第十四章概率图模型

14.1 隐马尔可夫模型 概率模型提供一种描述框架&#xff0c;将学习任务转化为计算变量的概率分布&#xff0c;利用已知变量来推测未知变量的分布为“推测”。假定关心的变量集合为&#xff0c;可观测变量集合为&#xff0c;其他变量集合为&#xff0c;生成式模型联合分布&…

node.js express创建本地服务以及使用pm2启动服务

在node.js环境下安装插件&#xff1a; npm i body-parser npm i express 同目录下创建app.js // 引入express中间件 const express require(express); const bodyParser require(body-parser); // 创建web服务器 const app express(); // 使用body-parser中间件解析JSON类型…

Flask详细教程

1、Flask是什么&#xff1f; Flask是一个非常小的PythonWeb框架&#xff0c;被称为微型框架&#xff08;类似Java的SpringBoot&#xff09;&#xff1b;只提供了一个稳健的核心&#xff0c;其他功能全部是通过扩展实现的&#xff1b;意思就是我们可以根据项目的需要量身定制&a…

如何将本地组件库上传到npm上

如何把本地开发的组件发布到npm上面&#xff0c;我们需要去了解vue封装组件的原理&#xff0c;利用vue.use(plugin)这个api, 我们需要把封装好的组件打包成vue库&#xff0c;并提供install方法发布到npm上去&#xff0c;Vue.use(plugin)自动执行插件中的install方法。 我们在这…

JS逆向高阶补充

文章目录 JS逆向高阶补充eval函数Hook函数案例1: Hook eval案例2: Hook JSON.stringify案例3: Hook JSON.parse案例4: Hook Cookie Promise对象&#xff08;1&#xff09;回调函数&#xff08;2&#xff09;基本语法&#xff08;3&#xff09;then函数&#xff08;4&#xff09…

浅谈如何克服编程学习中的挫折感

目录 1.概述 2.心态调整 3.学习方法 3.1. 基础知识的打牢 3.2. 分解问题 3.3. 理论与实践相结合 3.4. 利用在线资源和社区 3.5. 教学 3.6. 定期复习与总结 3.7. 持续学习和适应新技术 3.8. 解决实际问题 4.成功经验 5.总结 1.概述 在编程学习的过程中&#xff0c…

linux下对目录文件进行操作(打开目录,读取目录项,关闭目录),进入目录的函数chdir,七篇文件I/O文章小结

目录文件介绍 目录也是一种文件&#xff0c;因此操作流程与普通文件类似&#xff0c;有诸如打开、关闭、定位等概念&#xff0c;但目录是一种特殊的文件&#xff0c;目录存储的数据的最小单位并不是字符&#xff0c;而是目录项。这使得目录跟普通文件又有区别。目录项指的是结…