for…in 和 for…of区别用法

for…in 和 for…of区别用法

用于数组

let arr = ['h', 'e', 'l', 'l', 'o']
	for (const key in arr) {
		console.log(key)  //0 1 2 3 4
	}
	for (const key of arr) {
		console.log(key)  //h e l l o
	}

可以看到:

for…in 循环数组输出的是下标

for…of 循环数组输出的是数组中的每一项

用于对象

let obj = {name: 'yy', age: 18}
	for (const key in obj) {
		console.log(key)		//name  age
		console.log(obj[key])	//yy   18
	}
	for (const key of obj) {
		console.log(key)
		//报错: demo02.html:22 Uncaught TypeError: obj is not iterable atdemo02.html:22:22
	}

可以看到:

for…in循环可以遍历对象

for…of遍历普通对象会报错 但是他可以遍历可迭代对象(含有[Symbol.iterator] 函数属性,也就是含有iterator接口 )

总结:

for…in 循环主要是为了遍历对象而生,不适用于遍历数组;for…of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值