当前位置: 首页 > news >正文

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          可迭代的

http://www.lryc.cn/news/43158.html

相关文章:

  • C++的各种初始化
  • 使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录
  • 用CSS3画了一只猫
  • 菜鸟刷题Day7
  • 蓝桥杯刷题第二十三天
  • 进阶指针(3)——指针与数组笔试题的解析
  • 树与二叉树的存储与遍历
  • 28-队列练习-LeetCode622设计循环队列
  • 你值得拥有——流星雨下的告白(Python实现)
  • 【5G RRC】NR测量事件介绍
  • PMP项管2023年5月的备考准备攻略!
  • Linux进程概念—环境变量
  • 用JS+CSS打造你自己的弹幕王国,让网页动起来!
  • C++ LinuxWebServer 2万7千字的面经长文(上)
  • vue3 解决各场景 loading过度 ,避免白屏尴尬!
  • 基于sringboot和小程序实现高校食堂移动预约点餐系统演示【源码】
  • 开源操作系统与Windows大比拼!
  • RTL8201 以太网PHY芯片 调试记录
  • Java中Static关键字的五种用法详解
  • WebSocket 测试工具
  • 低代码开发的未来~
  • 蓝桥杯真题——模拟灌溉系统
  • 【数据结构】双向链表实现
  • 无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】
  • CentOS 7+Docker搭建rabbitMQ无法访问15672端口
  • 面试官:如何保证接口幂等性?一口气说了9种方法!
  • 蓝桥杯刷题冲刺 | 倒计时14天
  • 【数据结构】树的概念
  • Qt Glog toStdWString转char* 中文乱码
  • 基于线性Kalman观测器(LKF)的2、4、7自由度悬架主动控制合集