for in循环可以将一个对象的所有属性名遍历出来
var Person={
name:"BurNing",
age:29,
job:"Carry"
}
for(var key in Person){
alert(key);//name,age,job
}
//数组对象
var arr=["1","2","3"];
for(var index in arr){
alert(index);//0,1,2 String类型的索引值;
}
这种方法可以查找不是来自继承的属性
在for in循环内使用hasOwnProperty()方法
var Person={
name:"BurNing",
age:29,
job:"Carry"
}
for(var key in Person){
if(Person.hasOwnProperty(key))
alert(key);//name age job
}
在for in中 我们要是给数组加入一个属性,他会怎么样?
var arr=["1","2","3"];
arr.job="carry"
for(var index in arr){
alert(index);//0,1,2,job
}
alert(arr.length);//3
alert(arr)1,2,3
数组的长度并没有变,用alert的方式你也得不到carry,用console.log却可以得到下面这个
ES6为我们提供了新的iterable
类型,其中有for of方法,得到的会是属性值的集合
var arr=["1","2","3"];
arr.job="carry"
for(var index of arr){
alert(index);//1,2,3
}