for in 、for of详解

for in

可以用在可枚举数据 => 对象

可枚举数据

属性描述符 => enumerable

示例

1、可以用来遍历对象 => 属性名
如:
在这里插入图片描述
上面有个enumerable属性,就是它来控制属性是否可枚举

同时也会枚举对象原型上的可枚举的属性名

let obj = {
    name: "lihegui",
    gender: "nan",
    age: "22"
}
for (let item in obj) {
    console.log(item);
}
//	name
//	gender
//	age

2、可以用来遍历数组 => 数组下标

let arr = ["lihegui", "fxp", "shuzu"]
for (let item in arr) {
    console.log(item);
}
//	0
//	1
//	2

3、遍历字符串 => 字符所处的位置下标

let str = "lihegui"
for (let item in str) {
    console.log(item);
}
//	0
//	1
//	2
//	3
//	4
//	5
//	6

for of

可以用在可迭代数据 => 数组、字符串、Map、Set

for in 遍历map set会是undefined

可迭代数据

只要一个数据实现Iterator接口,这个数据就会有一个叫做[Symbol.iterator]的属性
例如数组有个Synbol.iterator的属性

示例

1、遍历数组 => 数组每一项

let arr = ["lihegui", ["and", "lihegui"], "fxp", "shuzu"]
for (let item of arr) {
    console.log(item);
}
//	lihegui
//	['and','lihegui']
//	fxp
//	shuzu

2、遍历字符串 => 字符每一项

let str = "lihegui"
for (let item of str) {
    console.log(item);
}
//	l
//	i
//	h
//	e
//	g
//	u
//	i

3、遍历map => 每一项

let map = new Map([
    [1, 'one'],
    [2, 'two'],
    [3, 'three']
])
for (let item of map) {
    console.log(item);
}
//	[ 1, 'one' ]
//	[ 2, 'two' ]
//	[ 3, 'three' ]

4、遍历set => 每一项

let set = new Set(["lihegui", "fxp"])
for (let item of set) {
    console.log(item);
}
//	lihegui
//	fxp
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李和贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值