js判断对象中是不是有某个key

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断对象中是不是有某个key相关的知识,希望对你有一定的参考价值。

参考技术A obj['key'],点"."
1 .出现的bug,如果这个key的值是false,这里就会判断没有,或者value是undefined也一样

2 .可以看到这俩都不行
3 .如果对象上不存在改属性,则会返回undefined.这种方式可以判断对象的自由属性和继承属性.如果对象自身没有检测的属性,而原型链上有该属性,就会返回原型链上的属性值

1 .返回一个布尔值,指示对象自身属性是否有指定的属性
2 .原型链上的不会被访问到,和in不同,会忽略到从原型链上继承到的属性
3 .即使属性的值是null,undefined,只要属性存在,hasOwnProperty依旧会返回true
4 .注意:这个方法没有被保护,也就是说方法可以自定定义一个这样的方法,来让他的返回值永远是true或者false

1 .!!('work' in obj)
2 .如果指定的属性在指定的对象或其原型链中,则in 运算符返回true

3 .使用delete删除的属性返回false
4 .值为undefined的属性是可以的

1 .和in方法完全一样,但是第一个参数不是对象会报错
2 .这个方法更加形象

3 .原型链上的方法同样可以会返回true

1 .判断指定名称的属性是否为实例属性并且是可枚举的.
2 .

1 .也就是说,判断自身属性的时候用除了in的所有方法,判断继承属性使用in
2 .

如何判断出一个js对象是不是一个dom对象

在DOM Level2标准中定义了一个HTMLElement对象,它规定所有的DOM对象都是HTMLElement的实例,所以我们可以利用这点来判断一个对象是不是DOM对象:如果该对象是HTMLElement的实例,则它肯定是一个DOM对象。在不支持HTMLElement的浏览器中我们则还是使用特征检测法。
<script type="text/javascript">
//首先要对HTMLElement进行类型检查,因为即使在支持HTMLElement
//的浏览器中,类型却是有差别的,在Chrome,Opera中HTMLElement的
//类型为function,此时就不能用它来判断了
var isDOM = ( typeof HTMLElement === \'object\' ) ?
function(obj)
return obj instanceof HTMLElement;
:
function(obj)
return obj && typeof obj === \'object\' && obj.nodeType === 1 && typeof obj.nodeName === \'string\';

</script>
参考技术A obj instanceof HTMLElement|| obj == document

以上是关于js判断对象中是不是有某个key的主要内容,如果未能解决你的问题,请参考以下文章

js中如何判断一个属性是不是属于某个对象

js 中判断字典中是不是有key

js中判断对象数组中是不是有某个属性值

JAVA怎样判断一个对象的类型

js判断元素是不是存在某个属性

js判断一个值是不是存在于一个js数组中