1.使用in关键字

该方法可以判断对象的自有属性和继承属性是否存在。

  1. var obj = {
  2. name:"zhangxiang",
  3. age:13,
  4. school:"WIT",
  5. gender:"man"
  6. };
  7. console.log("school" in obj);//true

2.hasOwnProperty()方法

该方法只能判断自有属性是否存在,对于继承属性会返回false

  1. var obj = {
  2. name:"zhangxiang",
  3. age:13,
  4. school:"WIT",
  5. gender:"man"
  6. };
  7. console.log(obj.hasOwnProperty("name"));//true

3.用undefined判断

自有属性和继承属性均可判断

  1. var obj = {
  2. name:"zhangxiang",
  3. age:13,
  4. school:"WIT",
  5. gender:"man"
  6. };
  7. console.log(obj.name!==undefined);

该方法存在一个问题,如果属性的值就是undefined的话,该方法不能返回想要的结果,如下。

  1. var o={x:undefined};
  2. o.x!==undefined; //false,属性存在,但值是undefined
  3. o.y!==undefined; //false
  4. o.toString!==undefined //true