for…in
作用:遍历对象的属性。
for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。遍历顺序有可能不是按照实际数组的内部顺序,使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性,所以for in更适合遍历对象,
注意:不要使用for in遍历数组。for-in 循环主要用于遍历对象,for()中的格式:for(keys in zhangsan){}keys表示obj对象的每一个键值对的键!!所有循环中,需要使用obj[keys]来取到每一个值!!!
for-in 循环,遍历时不仅能读取对象自身上面的成员属性,也能延续原型链遍历出对象的原型属性,所以,可以使用hasOwnProperty判断一个属性是不是对象自身上的属性。
obj.hasOwnProperty(keys)==true 表示这个属性是对象的成员属性,而不是原先属性
语法
语法:
for (变量 in 对象)
{
在此执行代码
}
“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。
建议:如果是遍历普通数组的话,用for是最好的选择,但是如果是对象,就for in就好了。
实例
//遍历数组
var p = ['a', 'b', 'c'];
for (var x in p) {
console.log(x); //结果为0 1 2
}
//遍历对象
var obj = {
name: "lisa",
age: 12,
job: "teacher",
speak: function() {
return this.job + this.name;
}
}
for (var j in obj) {
console.log(j); //结果为 name age job speak
}