JavaScript中关键字 in 的使用方法详解
for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。
对于数组,迭代出来的是数组元素但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以
最好数组使用正常的for循环,对象使用for-in循环
对于对象,迭代出来的是对象的属性;
varobj={
"key1":"value1",
"key2":"value2",
"key3":"value3"
};
functionEnumaKey(){
for(varkeyinobj){
alert(key);
}
}
functionEnumaVal(){
for(varkeyinobj){
alert(obj[key]);
}
}
javascript中in关键字还有下面的作用
定义:
in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。
varFn=function(){this.age=1;};
Fn.prototype.name='jim';
//Fn.prototype.age=undefined;
varf=newFn();
//hasOwnProperty
//如何判断属性是被继承的???
console.log('age'inf&&!f.hasOwnProperty('age'));
//age可能存在原型链上,也可能不存在
//如果属性值就是null或undefined,那么此时f.age就无法判断了
对于一般的对象属性需要用字符串指定属性的名称
如:
varmycar={make:"Honda",model:"Accord",year:1998};
"make"inmycar//returnstrue
"model"inmycar//returnstrue
如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:
varmycar={make:"Honda",model:"Accord",year:1998};
deletemycar.make;
"make"inmycar;//returnsfalse
vartrees=newArray("redwood","bay","cedar","oak","maple");
deletetrees[3];
3intrees;//returnsfalse
如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true.
varmycar={make:"Honda",model:"Accord",year:1998};
mycar.make=undefined;
"make"inmycar;//returnstrue
vartrees=newArray("redwood","bay","cedar","oak","maple");
trees[3]=undefined;
3intrees;//returnstrue
以上所述是小编给大家介绍的JavaScript中关键字in的使用方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!