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的使用方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!