JavaScript中的for in和for of的区别(js的for循环)
简述:js中的for循环大家都知道,今天来分享下for in和for of在使用时区别和注意事项,顺便做个笔记;
测试数据
//数组const arr = [1, 2, 3, 4, 5]//对象const obj = {name: "小李",color: ["plum", "pink", "purple"],status: {hobby: "study",}}//字符串const str = "emumerable"
for in
1、用来遍历键名,循环得到key,只能遍历可枚举的数据,
2、例如:数组、对象、字符串、set、map等,
3、使用Object.getOwnPropertyDescriptors()方法,判断该方法下的enumerable属性是否为true,来决定该数据是否可枚举;
⭐判断数据是否可枚举
Object.getOwnPropertyDescriptors(obj);
//打印
console.log(Object.getOwnPropertyDescriptors(obj));
输出

使用
//循环对象
for (let key in obj) {console.log(key); 控制台输出name color status ,为该对象的属性名
}//循环数组
for (let key in arr) {console.log(key); 控制台输出0 1 2 3 4 ,为该数组下标
}//循环字符串
for (let key in str) {console.log(key); 控制台输出0 1 2 3 4 5 6 7 8 9 , 为该字符下标
}
for of
1、用来遍历键值,循环得到value,只能用来遍历可迭代的数据,
2、例如:数组、字符串、set、map等,
3、使用arr[Symbol.iterator]()方法,判断该方法中是否有next()函数,来决定该数据是否可迭代;
⭐判断数据是否可迭代
arr[Symbol.iterator]()
//打印
console.log(arr[Symbol.iterator]());
输出

使用
//循环数组
for (let val of arr) {console.log(val); 控制台输出1 2 3 4 5 ,为该数组的每一项
}其它遍历类似
当然,如果使用for of来遍历对象(对象是不可迭代的),就会报如下错误,
for of 遍历对象是不可取的,会报错Xfor (let val of obj) {console.log(val); }

报错:obj不是可迭代的。
enumerable 可枚举的
iterator 迭代器
iterable 可迭代的
相关文章:
JavaScript中的for in和for of的区别(js的for循环)
简述:js中的for循环大家都知道,今天来分享下for in和for of在使用时区别和注意事项,顺便做个笔记; 测试数据 //数组const arr [1, 2, 3, 4, 5]//对象const obj {name: "小李",color: ["plum", "pink&q…...
C++的各种初始化
C的各种初始化 1.默认初始化 默认初始化是指定义变量时没有指定初值时进行的初始化操作。例如int a; Sales_data myData;等等。这些变量被定义了而不是仅仅被声明(因为没有extern关键字修饰),而且没有显式的赋予初值。特别的,如…...
使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录
兄弟们天天看基础看腻了吧 今天来分享一下如何使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录。 逆向目标 目标:某 7 网游登录主页:aHR0cHM6Ly93d3cuMzcuY29tLw接口:aHR0cHM6Ly9teS4zNy5jb20vYXBpL…...
用CSS3画了一只猫
感觉我写得技术含量不高,全都是用绝对定位写的,一定会有更好的,代码量更少的做法吧 <!DOCTYPE html> <html> <head><title>Cute Cat</title><style type"text/css">*{box-sizing: border-box…...
菜鸟刷题Day7
⭐作者:别动我的饭 ⭐专栏:菜鸟刷题 ⭐标语:悟已往之不谏,知来者之可追 一.整理字符串:1544. 整理字符串 - 力扣(LeetCode) 描述 给你一个由大小写英文字母组成的字符串 s 。 一个整理好的字…...
蓝桥杯刷题第二十三天
第一题:长草题目描述小明有一块空地,他将这块空地划分为 n 行m 列的小块,每行和每列的长度都为 1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会…...
进阶指针(3)——指针与数组笔试题的解析
在讲解之前我们先回顾一下,以下将要涉及的重要知识点: 1、数组名是什么? ①sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节; ②&数组名,这里的数…...
树与二叉树的存储与遍历
文章目录一、树概念二、二叉树三、二叉树的存储与遍历一、树概念 如前面的顺序表,链表,栈和队列都是线性的数据结构,树是非线性的结构。树可以有n个结点,n>0,当n0是就表示树为空 n>0,代表树不为空,不为空的树&am…...
28-队列练习-LeetCode622设计循环队列
题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通…...
你值得拥有——流星雨下的告白(Python实现)
目录1 前言2 霍金说移民外太空3 浪漫的流星雨展示 4 Python代码 1 前言我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星雨表白代码奉上,还有我自创的一首诗。开始啦:2 霍金说移民外太空霍…...
【5G RRC】NR测量事件介绍
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
PMP项管2023年5月的备考准备攻略!
2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…...
Linux进程概念—环境变量
Linux进程概念—环境变量1.孤儿进程2.环境变量2.1常见环境变量2.2查看环境变量方法2.3在环境变量中添加2.4和环境变量相关的命令2.5环境变量的组织方式2.6命令行参数🌟🌟hello,各位读者大大们你们好呀🌟🌟 Ὠ…...
用JS+CSS打造你自己的弹幕王国,让网页动起来!
文章目录前言主要内容实现方法DOM方法显现效果代码CANVAS方法显现效果代码总结更多宝藏前言 😎🥳😎🤠😮🤖🙈💭🍳🍱 用JSCSS打造你自己的弹幕王国,…...
C++ LinuxWebServer 2万7千字的面经长文(上)
⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 前言 Linux Web Server项目虽然是现在C求职者的人手一个的项目,但是想要吃透这个项目ÿ…...
vue3 解决各场景 loading过度 ,避免白屏尴尬!
Ⅰ、前言 当我们每次打卡页面,切换路由,甚至于异步组件,都会有一个等待的时间 ;为了不白屏,提高用户体验,添加一个 loading 过度动画是 非常 常见的 ;那么这几种场景我们应该把 loading 加在哪…...
基于sringboot和小程序实现高校食堂移动预约点餐系统演示【源码】
基于sringboot实现高校食堂移动预约点餐系统演示开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件&am…...
开源操作系统与Windows大比拼!
科技网站ZDNet近日撰文称,在一个用户为王的时代,操作系统们为了获得青睐都放下了身段,采用免费策略,但其中却有一个例外——Windows 10。这样的一反常理让许多人不看好Windows的未来,难道这个我们最熟悉的朋友真的会成…...
RTL8201 以太网PHY芯片 调试记录
一、概述 为了尽量给甲方降低成本,决定使用较低成本的PHY芯片RTL8201F-VB-CG芯片。移植官网的以太网demo程序,git上下载了一份很好看的rtl8201F的驱动程序,用来替换官方demo的lan8742程序。并没有直接通,于是开始了调试之路。 二…...
Java中Static关键字的五种用法详解
Static的五种用法大致如下: 修饰成员变量,使其成为类变量,也叫静态变量修饰成员方法,使其成为类方法修饰内部类,使其成为静态内部类静态代码块静态导包 直接一点,static关键字就是把属性和方法变为类相关&…...
ReefwingLSM9DS1库:面向nRF52840的九轴IMU同步驱动
1. ReefwingLSM9DS1库概述:面向Arduino Nano 33 BLE的LSM9DS1九轴IMU驱动实现ReefwingLSM9DS1是一个专为Arduino Nano 33 BLE硬件平台优化的C类库,用于驱动STMicroelectronics出品的LSM9DS1高精度九轴惯性测量单元(Inertial Measurement Unit…...
Meshroom终极指南:零基础学会开源3D重建,从照片到模型的完整方案
Meshroom终极指南:零基础学会开源3D重建,从照片到模型的完整方案 【免费下载链接】Meshroom Node-based Visual Programming Toolbox 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 想要从普通照片创建专业级3D模型吗?Meshro…...
5分钟打造现代化Windows提示界面:ModernFlyouts彻底改变你的系统体验
5分钟打造现代化Windows提示界面:ModernFlyouts彻底改变你的系统体验 【免费下载链接】ModernFlyouts A modern Fluent Design replacement for the old Metro themed flyouts present in Windows. 项目地址: https://gitcode.com/gh_mirrors/mo/ModernFlyouts …...
洪城寻缘角
洪城寻缘角 南昌人的免费寻缘平台 不必再奔波相亲角,不必被收费套路困扰 洪城寻缘角,全功能永久免费 无需注册即可登记,一键发布个人资料 支持多条件精准筛选,快速匹配同频有缘人 覆盖南昌全城单身,真实、高效、安心…...
Modmata:Arduino工业级Modbus协议栈深度解析
1. Modmata:面向工业控制场景的Arduino Modbus协议栈深度解析Modmata并非一个简单的协议转换层,而是将Arduino从消费级原型平台推向工业级可编程控制器(PLC)边缘节点的关键中间件。其设计哲学直指嵌入式系统开发中长期存在的“协议…...
光伏电站电流传感器选型与应用全解析
摘要:本文深入探讨光伏电站中电流传感器的选型要点与应用技术。阐述了电流传感器在光伏系统中的重要性,分析其不同技术原理及特点,并结合光伏电站实际工况,从量程、精度、隔离耐压等方面详细介绍选型方法,同时分享了电…...
解锁5大核心技术:MelonLoader模组加载器完全指南
解锁5大核心技术:MelonLoader模组加载器完全指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 引言:U…...
不用手动设置滤波参数,程序自动根据信号特征,匹配滤波参数,零基础也能抗干扰。
在智能仪器的世界里,我们经常面临一个尴尬的局面:实验室里算法跑得飞起,一到现场就被噪声淹没。今天,我将结合《智能仪器设计》中的自适应信号处理理念,带你手撸一个“傻瓜式”自适应滤波器。这个工具的目标很明确&…...
3步打造智能家居音乐自由:给爱好者的开源方案详解
3步打造智能家居音乐自由:给爱好者的开源方案详解 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 在智能家居的日常使用中,许多用户都面临着…...
从零入门大模型应用开发:收藏这份学习清单,轻松转型高薪岗位!
文章指出当前AI应用开发社招要求已提升,不再满足于简单的API调用或Demo实现。文章警示三类人慎入AI开发社招,并强调能力复合化、工程深度和业务理解的重要性。作者分享了四年AI开发经验,建议深入原理、重构项目经验,并给出了量化解…...
