JavaScript 中的所有事物都是对象: 字符串, 数值, 数组, 函数等等. 对象只是一种特殊的数据. 对象拥有属性和方法.
JavaScript 检测对象中是否存在某个属性
使用 in 关键字
该方法可以判断对象的自有属性和继承来的属性是否存在.
- var o={
- x:1
- };
- "x" in o; //true, 自有属性存在
- "y" in o; //false
- "toString" in o; //true, 是一个继承属性
使用对象的 hasOwnProperty() 方法
该方法只能判断自有属性是否存在, 对于继承属性会返回 false.
- var o={
- x:1
- };
- o.hasOwnProperty("x"); //true, 自有属性中有 x
- o.hasOwnProperty("y"); //false, 自有属性中不存在 y
- o.hasOwnProperty("toString"); //false, 这是一个继承属性, 但不是自有属性
使用 undefined 判断 (自有属性和继承属性均可判断.)
- var o={
- x:1
- };
- o.x!==undefined; //true
- o.y!==undefined; //false
- o.toString!==undefined //true
该方法存在一个问题, 如果属性的值就是 undefined 的话, 该方法不能返回想要的结果, 如下.
- var o={
- x:undefined
- };
- o.x!==undefined; //false, 属性存在, 但值是 undefined
- o.y!==undefined; //false
- o.toString!==undefined //true
在条件语句中判断
- var o={
- };
- if(o.x) o.x+=1;
- // 如果 x 是 undefine,null,false," ",0 或 NaN, 它将保持不变
来源: http://www.css88.com/qa/javascript/11944.html