for语句

for

用法:for(var i = 0; i < arr.length; i++)

用来循环遍历数组中的元素

for in

用法:for(var property in obj)

用来枚举对象的属性

  • 每次循环时都会将obj对象中存在的一个属性赋值给property,该循环会一直持续到对象中所有属性都被枚举一边为止
  • 与for 语句类似,这里控制语句中的var也不是必须的,但为了保证使用局部变量,推荐保留var操作符
  • for in 也可用来遍历数组,因为数组也属于对象的一种,但其拿到的是数组的下标

for of

for(var property of obj)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var a = ['a','b','c']
var s = new Set(['a','b','c'])
var m =new Map([[1,'x'],[2,'y'],[3,'z']])
//遍历数组
for(var x in a){
alert(x) //拿到的是下标0,1,2
}
for(var x of a){
alert(x) //拿到的是值a,b,c
}
//遍历Set集合
for(var x in s){
alert(x) //不起作用,不能用for in 循环Set集合
}
for(var x of s){
alert(x) //拿到的是Set集合每个元素的值
}
//遍历Map集合
for(var x in m){
alert(x) //不起作用,不能用for in 循环Map集合
}
for(var x of m){
alert(x[0] + "=" + x[1]) //键和值都能拿到
}