检测对象中属性的存在与否可以通过几种方法来判断
使用in关键字
该方法可以判断对象的自有属性和继承来的属性是否存在
代码如下:
var o={x:};
"x" in o; //true自有属性存在
"y" in o; //false
"toString" in o; //true是一个继承属性
使用对象的hasOwnProperty()方法
该方法只能判断自有属性是否存在对于继承属性会返回false
代码如下:
var o={x:};
ohasOwnProperty("x"); //true自有属性中有x
ohasOwnProperty("y"); //false自有属性中不存在y
ohasOwnProperty("toString"); //false这是一个继承属性但不是自有属性
用undefined判断
自有属性和继承属性均可判断
代码如下:
var o={x:};
ox!==undefined; //true
oy!==undefined; //false
otoString!==undefined //true
该方法存在一个问题如果属性的值就是undefined的话该方法不能返回想要的结果如下
代码如下:
var o={x:undefined};
ox!==undefined; //false属性存在但值是undefined
oy!==undefined; //false
otoString!==undefined //true
在条件语句中直接判断
代码如下:
var o={};
if(ox) ox+=; //如果x是undefinenullfalse" "或NaN它将保持不变