`
paladin1988
  • 浏览: 320451 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】javascript检测对象中是否存在某个属性

 
阅读更多

 

原文链接:http://www.cnblogs.com/kongxianghai/archive/2013/04/12/3015803.html

 

 

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

 

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,它将保持不变

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

    检测对象中属性的存在与否可以通过以下几种方法来判断:使用in关键字、使用对象的hasOwnProperty()方法、用undefined判断、在条件语句中直接判断,感兴趣的朋友可以了解下哈

    javascript中hasOwnProperty() 方法使用指南

    hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性。 语法 obj.hasOwnProperty(prop) 参数 •prop •要检测的属性名称。 描述 所有继承了 Object.prototype 的对象都会从原型链上继承到 ...

    Javascript数组操作高级心得整理

    (1) JavaScript对象也是有属性和方法的 15  对象属性的使用 15  对象方法的使用 15 (2) 对象的定义与实例化 15 (3) 对象的作用域 16  JavaScript对象只有公用作用域 16  JavaScript对象没有静态作用域 16 ...

    Javascript中的for in循环和hasOwnProperty结合使用

    小结 当检测某个对象是否拥有某个属性时,hasOwnProperty 是唯一可以完成这一任务的方法,在 for in 循环时,建议增加 hasOwnProperty 进行判断,可以有效避免扩展本地原型而引起的错误。与in操作符相比,for in 在...

    《javaScrip开发技术大全》源代码

    • sample42.htm 判断对象的属性是否可以被枚举 • sample43.htm 监视属性值的变化情况 第10章(\代码\第10章) • sample01.htm 直接调用函数 • sample02.htm 将函数返回值赋值...

    【JavaScript源代码】JavaScript 手动实现instanceof的方法.docx

    instanceof的用法 instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。 function Person() {} function Person2() {} const usr = new Person(); console.log(usr instanceof...

    JavaScript中instanceof运算符的使用示例

    instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上。 实例一:普遍用法 A instanceof B :检测B.prototype是否存在于参数A的原型链上. function Ben() { } var ben = ...

    JavaScript的instanceof运算符学习教程

    instanceof运算符可以用来判断某个构造函数的prototype属性所指向的对象是否存在于另外一个要检测对象的原型链上,这里我们就来看一下JavaScript的instanceof运算符学习教程

    利用hasOwnProperty给数组去重的面试题分享

    hasOwnProperty是javascript中用于检测对象是否包含某个属性的方法,返回一个布尔值。 var o = { a: 1}; console.log(o.hasOwnProperty('a')); // true console.log(o.hasOwnProperty('b')); // false 有一个用...

    javascript的propertyIsEnumerable()方法使用介绍

    代码如下: /* propertyIsEnumerable()是用来检测属性是否属于某个对象的,如果检测到了,返回true,否则返回false. 1.这个属性必须属于实例的,并且不属于原型. 2.这个属性必须是可枚举的,也就是自定义的属性,可以通过...

    asp.net知识库

    [ASP.NET 2.0]PageParser.GetCompiledPageInstance中存在一个Bug 如何在DotNet 2的登录组件中检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    目前市场业务中在产品以及其他项目的认证和检测方面存在诸多不便,用户需要实地考察并频繁与检测单位沟通,填写繁琐的纸质检测报告、当面送递样品,对于检测环节中存在的问题难以及时交互并处理。市场上相应的检测...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置...

    ASP.NET2.0高级编程(第4版)1/6

    本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...

    flex3的cookbook书籍完整版dpf(包含目录)

    检测对象数据类型 1.18节.接口的定义和实现 第二章. 控件与菜单(37) 2.1节. 监听按钮点击 2.2节. 创建一组状态按钮 2.3节. 使用ColorPicker设置Canvas颜色 2.4节. 使用SWFLoader载入SWF 2.5节. 设置组件的标签索引...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    6.3.5 把文件内容从Stream对象移动到Byte数组中 175 6.4 MultiView和View服务器控件 175 6.5 Wizard服务器控件 179 6.5.1 定制边栏导航 181 6.5.2 AllowReturn属性 182 6.5.3 使用StepType属性 182 6.5.4 给...

Global site tag (gtag.js) - Google Analytics