javascript检测对象中是否存在某个属性判断方法小结

 更新时间:2013年05月19日 16:47:44   作者:  
检测对象中属性的存在与否可以通过以下几种方法来判断:使用in关键字、使用对象的hasOwnProperty()方法、用undefined判断、在条件语句中直接判断,感兴趣的朋友可以了解下哈
检测对象中属性的存在与否可以通过几种方法来判断。
1.使用in关键字
该方法可以判断对象的自有属性和继承来的属性是否存在。
复制代码 代码如下:

var o={x:1};
"x" in o; //true,自有属性存在
"y" in o; //false
"toString" in o; //true,是一个继承属性

2.使用对象的hasOwnProperty()方法
该方法只能判断自有属性是否存在,对于继承属性会返回false。
复制代码 代码如下:

var o={x:1};
o.hasOwnProperty("x");    //true,自有属性中有x
o.hasOwnProperty("y");    //false,自有属性中不存在y
o.hasOwnProperty("toString"); //false,这是一个继承属性,但不是自有属性

3.用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

4.在条件语句中直接判断
复制代码 代码如下:

var o={};
if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它将保持不变

相关文章

  • uniapp使用高德地图的超详细步骤

    uniapp使用高德地图的超详细步骤

    使用uni-app框架开发微信小程序,可以使用高德地图开发地图选点、搜索位置、定位、获取详细的地址信息、码值等信息,下面这篇文章主要给大家介绍了关于uniapp使用高德地图的超详细步骤,需要的朋友可以参考下
    2022-12-12
  • Layui弹框中数据表格中可双击选择一条数据的实现

    Layui弹框中数据表格中可双击选择一条数据的实现

    这篇文章主要介绍了Layui弹框中数据表格中可双击选择一条数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • JS如何判断浏览器类型和详细区分IE各版本浏览器

    JS如何判断浏览器类型和详细区分IE各版本浏览器

    本篇文章主要介绍了JS判断浏览器类型和详细区分IE各版本浏览器的代码,非常具有实用价值,有兴趣的可以了解一下。
    2017-03-03
  • 前端性能优化建议

    前端性能优化建议

    这篇文章主要分享了一些前端性能优化的建议,帮助大家提高页面性能,感兴趣的朋友可以了解下
    2020-09-09
  • javascript 对象属性property与元素属性attribute的浏览器支持

    javascript 对象属性property与元素属性attribute的浏览器支持

    对象属性property与元素属性attribute的浏览器支持情况,大家可以参考下。
    2010-10-10
  • Canvas实现放射线动画效果

    Canvas实现放射线动画效果

    本文主要分享了Canvas实现放射线动画的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Echarts横向堆叠柱状图和markLine实例详解

    Echarts横向堆叠柱状图和markLine实例详解

    一些柱形图在数据量比较多的时候,横向排列受到挤压,导致柱形图,变的非常细,影响整体的效果,所以应该将柱形图堆叠起来,这样就会好很多,下面这篇文章主要给大家介绍了关于Echarts横向堆叠柱状图和markLine的相关资料,需要的朋友可以参考下
    2022-06-06
  • 跟我学习javascript的this关键字

    跟我学习javascript的this关键字

    跟我学习javascript的this关键字,this是动态绑定,或称为运行期绑定的,这就导致 JavaScript中的this关键字有能力具备多重含义,带来灵活性的同时,也为初学者带来不少困惑
    2015-11-11
  • 深入理解JavaScript中的宏任务和微任务机制

    深入理解JavaScript中的宏任务和微任务机制

    JavaScript中的任务分为宏任务和微任务,它们的执行顺序会影响代码的执行结果。了解它们的机制可以帮助我们更好地理解事件循环和异步编程,避免出现一些意想不到的错误
    2023-05-05
  • apicloud拉起小程序并传递参数的方法示例

    apicloud拉起小程序并传递参数的方法示例

    这篇文章主要介绍了apicloud拉起小程序并传递参数的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论