forEach、for in 、 for of的区别

forEach

forEach专门用来循环数组,对数组的每一个元素执行一次提供的函数(不能使用return、break、continue等中断循环,没有返回值),可以直接取到元素,同时也可以取到index值、数组。

let arr =  [1, 2, 3, 4, 5]
arr.forEach(function(value, index, arr) {
	console.log(index + ':' + value)
	console.log(arr)
})

结果

1:1
(5) [1, 2, 3, 4, 5]
2:2
(5) [1, 2, 3, 4, 5]
3:3
(5) [1, 2, 3, 4, 5]
4:4
(5) [1, 2, 3, 4, 5]
5:5
(5) [1, 2, 3, 4, 5]
for in

遍历数据结构的键值,一般用来遍历对象,数组本身也是一种对象,在遍历时会输出传入的键值。key会变成字符串类型。

let arr = [1, 2, 3]
arr.c = 4
for(let a in arr) {
	console.log(a)// 1, 2, 3, c 输出的为key(属性名称)
}
for of

可遍历key,value。
允许遍历 Array(数组)、String(字符串)、Map(映射)、Set(集合)、arguments对象、Nodelist对象等可迭代的数据结构,且支持return,但不能遍历obj对象。
因为obj对象没有Symbol.iterator属性,而以上数据结构部署了Symbol.iterator属性,for of循环遍历实际是调用了Symbol.iterator接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值