js对象中是否存在某个属性

检测对象中属性的存在与否可以通过几种方法来判断。

1.使用in关键字。

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

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

2.使用对象的hasOwnProperty()方法。

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

varo={x:1};

o.hasOwnProperty("x");//true,自有属性中有xo.hasOwnProperty("y");//false,自有属性中不存在yo.hasOwnProperty("toString");//false,这是一个继承属性,但不是自有属性

3.用undefined判断

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

varo={x:1};

o.x!==undefined;//trueo.y!==undefined;//falseo.toString!==undefined//true

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

varo={x:undefined};

o.x!==undefined;//false,属性存在,但值是undefinedo.y!==undefined;//falseo.toString!==undefined//true

4.在条件语句中直接判断

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 730评论 0 1
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,989评论 0 5
  • 序 从最近的js入门系列的阅读量逐步递减,观众老爷的兴趣也不再能够接受一些细节性的地方深度挖掘,让我有了一些思考。...
    zhaolion阅读 1,747评论 5 19
  • 语法基础 - 词法 字符集 Unicode字符集, 区分大小写 注释 // /* */ 直接量 数字 小数 字符串...
    KeKeMars阅读 1,017评论 1 11
  • 临摹
    xiaoyan晓燕阅读 211评论 0 0

友情链接更多精彩内容