JavaScript的 in 操作符可以用来判断一个属性是否属于一个对象,也可以用来遍历一个对象的属性
1. 判断属性属于对象( if in )
var person = {name: "小明", age: 18, year: 1998};
//注意,属性名必须是字符串形式,因为 age 不是一个变量
if ("age" in person){
console.log("man对象中含有age属性")
} else{
console.log("没")
}
2. for in遍历对象属性(for in)
var person = {name: "小明", age: 18, year: 1998};
for (var index in person){
console.log(index + ': ' + person[index]);
}
3. in可以用来进行判断
if ( foo == 'bar' || foo == 'foobar' || foo == 'foo' ){
//...
}
//就可以写成:
if ( foo in { 'bar':'', 'foobar':'', 'foo':'' } ){
//...
}
4. delete操作符可以删除属性,配合in使用
var person = {name: "小明", age: 18, year: 1998};
delete mycar.year;
console.log("year" in person); // returns false
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
console.log(trees) // ["redwood", "bay", "cedar", "oak", "maple"]
delete trees[3];
console.log(trees) // ["redwood", "bay", "cedar", undefined, "maple"]
3 in trees; // returns false
5. 尽量不要用for in遍历数组
集合遍历的效率为:hash > for(;;) > for(in)
集合相关操作首选对象,次之用for循环遍历。