`

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

阅读更多
[size=large]
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,它将保持不变


[/size]
分享到:
评论

相关推荐

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

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

    JS对象是否拥有某属性如何判断

    JS对象是否拥有某属性 两种方式,但稍有区别 1,in 运算符 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true 可看到无论是name,还是...

    解决Vue2.0 watch对象属性变化监听不到的问题

    很早之前就遇到一个问题,父组件向子组件传值,子组件监听传入对象的某个属性。发现子组件使用deep watch都不能观察到对象中属性的变化,今天终于找到为啥出现这种问题和解决办法了。 解决 为啥出现这种问题?受 ES5...

    javascript中hasOwnProperty() 方法使用指南

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

    JS对象属性的检测与获取操作实例分析

    in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值), 如果包含就返回true,否则返回false var obj = { p: 1 } 'p' in obj // true 'toString' in obj // true 上面代码中,obj对象上有一个p...

    js代码-基于class的抽象基类,通过new.target来实现。由于类的原型在实例化对象的时候就存在了,因此可以通过this来检查类是否实现了某个方法

    js代码-基于class的抽象基类,通过new.target来实现。由于类的原型在实例化对象的时候就存在了,因此可以通过this来检查类是否实现了某个方法

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

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

    Javascript数组操作高级心得整理

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

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

    • sample40.htm 判断对象属性是否为自有属性 • sample41.htm 判断一个对象是否是另一个对象的原型对象 • sample42.htm 判断对象的属性是否可以被枚举 • sample43.htm 监视属性...

    检查表单元素的值是否为空的实例代码

    主要是在JavaScript中通过循环form对象的elements属性来实现。form对象的elements属性也就是页面中form表单的所有元素的数组,例如,form.elements[0]表示表单第一个元素对象,form.elements[n]表示表单第n个元素...

    js面向对象的每日午餐v-000

    每日午餐实验室 目标 使用JavaScript迭代器方法构建具有类关系的域模型 使用JavaScript回答有关存储在我们应用程序中的数据的问题 ... 它返回一个具有id和name属性的对象 deliveries() -返回在附近

    JavaScript中instanceof运算符的使用示例

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

    正则表达式

    也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样, 正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的...

    JS判断数组四种实现方法详解

    如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出现频率高,想着还是做个整理,那么本文主要基于几种判断方式,以及方式判断的原理,是否存在问题展开讨论。 二、判断对象...

    浅谈js中test()函数在正则中的使用

    test() 方法用于检测一个字符串是否匹配某个模式. 返回一个 Boolean 值,它指出在被查找的字符串中是否匹配给出的正则表达式。 regexp.test(str) 参数 regexp 必选项。包含正则表达式模式或可用标志的正则表达式对象...

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

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

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

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

    javascript的propertyIsEnumerable()方法使用介绍

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

Global site tag (gtag.js) - Google Analytics