for...in 和 for...of 和 forEach 的区别?

while遍历

可以使用 break, continue ,return 

普通for循环

可以使用 break, continue,不能return

forEach 遍历数组

可以抛出异常  throw new Error("这个是异常")
不能 break,continue,return

for...of   遍历数组

可以使用 break, continue ,return 

for...in  遍历对象

1.for...in  的键值 会是字符串(String)类型
2.循环不仅会遍历数组元素,还会遍历任意其他自定义添加的属性,如,objArr上面包含自定义属性,objArr.name,那这次循环中也会出现此name属性
3.某些情况下,上述代码会以随机顺序循环数组
4.可以使用 break, continue,不能return

总结:

for循环不支持return,while支持

特殊的两个,while什么都可以,forEach什么都不可以。

实际案例

for in 循环 List

for(const item in [3,4,5]) console.log(item)
0 1 2

for in 循环 List<Map>

for(const item in [{a:1,b:2},{b:2}]) console.log(item)
0 1

for in 循环 Map

for (const item in { a: 1, b: 2 }) { console.log(item) }
a b

for of 循环 List

for(const item of [3,4,5]) console.log(item)
3 4 5

for of 循环 List<Map>

for(const item of [{a:1,b:2},{b:2}]) console.log(item)
{a: 1, b: 2}   {b: 2}

 for of 循环 Map

无法循环

 

posted @ 2020-12-15 19:40  coffeemil  阅读(176)  评论(0)    收藏  举报