for in | for in 比较 解释 | 以后找知识点先从这里面搜索
2024-10-21 14:28:58
const obj = {
a: 1,
b: 2,
c: 3
}
for (let i in obj) {
console.log(i)
// a
// b
// c
}
for (let i of obj) {
console.log(i)
// Uncaught TypeError: obj is not iterable 报错了
}
---> 说明 for in 可以打印出对象, for of 不能打印出对象
const arr = ['a', 'b', 'c']
// for in 循环
for (let i in arr) {
console.log(i)
// 0
// 1
// 2
}
-----------------》 说明for in 就是 key
// for of for (let i of arr) { console.log(i) // a // b // c }
--> for of 数组没有毛病
总结一句: for in 循环特别适合遍历对象。
for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名
一个数据结构只要部署了 Symbol.iterator 属性, 就被视为具有 iterator接口, 就可以使用 for of循环。
例1这个对象,没有 Symbol.iterator这个属性,所以使用 for of会报 obj is not iterable
for of 不同与 forEach, 它可以与 break、continue和return 配合使用,也就是说 for of 循环可以随时退出循环。
提供了遍历所有数据结构的统一接口
只要有 iterator 接口的数据结构,都可以使用 for of循环。
- 数组 Array
- Map
- Set
- String
- arguments对象
- Nodelist对象, 就是获取的dom列表集合
以上这些都可以直接使用 for of 循环。 凡是部署了 iterator 接口的数据结构也都可以使用数组的 扩展运算符(...)、和解构赋值等操作。
http://www.fly63.com/article/detial/1444
最新文章
- Xamarin+Prism开发详解五:页面布局基础知识
- linux查看进程启动时间
- being词典案例分析
- Objective C运行时(runtime)技术的几个要点总结
- 81 Search in Rotated Sorted Array II
- php下载文件的代码示例
- lintcode:在O(1)时间复杂度删除链表节点
- C语言连接MySQL数据库(课程设计总结)
- toggle
- Maven搭建SpringMVC+Hibernate项目详解
- spring源码测试
- jekyll博客安装
- 清理收缩VMware虚拟机MacOS系统的vmdk文件大小
- Javascript一道面试题
- CentOS 7 服务器配置--安装nginx
- 如何用一天时间实现自己的RPC框架
- freemarker报错之四
- (五十)Quartz2D生成图片的一些应用
- 原生JS替代jQuery的各种方法汇总
- Python3-Cookbook总结 - 第三章:数字日期和时间
热门文章
- STM32L4 Keil ST-Link 连接失败
- Map Inference in the Face of Noise and Disparity代码环境搭建
- godis实战
- 如何免费获取高清动图并将其插入到Markdown中
- Corundum:100G NIC学习(二)——仿真
- elasticsearch相关概念及常用操作汇总
- cuda+pytorch环境安装
- FastAPI中声明参数为必需的三种方式
- Asp.NET core/net 5接口返回实体含有long/int64的属性序列后最后几位变为0的解决
- 2022-05-20内部群每日三题-清辉PMP