判断一个对象上是不是包含 一个属性的几种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个对象上是不是包含 一个属性的几种方法相关的知识,希望对你有一定的参考价值。

参考技术A 1,“!==”进行判断,返回是布尔值,这种方法很常见,例如:

2,in的语法:attr in obj;返回是 布尔值,in方法可以检测对象的所有属性,不管是私有还是公有,只要有都显示true

in 与上面的undefined效果是一样的,但是唯一不同点是 in 可以区分 undefined 的属性值

3, for ... in:判断一个属性是否在对象上

4,hasOwnProperty() 方法 是检测对象是都某一属性名,返回布尔值,这里只能检测对象的私有属性,继承属性检测不出来

5,hasPubProperty:用来检查属性是否为对象的公有属性

6,typeof x;返回的是它的数据类型;
注:typeof-----检测数据类型作用,不能细分object下面的对象,数组,正则...

7,instanceof------即可检测是否是当前实例的类,还可以检查一个实例是否属于这个类
注:可以判断是否是一个数组

8,includes():

9,indexof():返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue,fromindex)

10,isPrototypeOf():检测一个对象是否是另一个对象的原型。或者说一个对象是否被包含在另一个对象的原型链中

11,【ES6】for of :
for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。

与 for in 的区别
1,for in可以遍历对象,for of无法循环遍历对象,

2, 遍历输出结果不同

3, for in 会遍历所有自定义属性,for of不会遍历新加的属性

4, for of 可以正确响应break、continue和return语句,但是for in 不行

以上的几种方法就是我暂时学到的几种方法。

js判断对象是不是为空对象的几种方法

参考技术A 1.将json对象转化为json字符串,再判断该字符串是否为""

var data=;

var b=(JSON.stringify(data) =='');

if(b==true)
    console.log('是的')
else
    console.log('不是')


2.for in 循环判断

var obj = ;

var b = function()

for(var key in obj)

return false;



return true;



alert(b());//true

4.Object.getOwnPropertyNames()方法

此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空

注意:此方法不兼容ie8,其余浏览器没有测试

var data = ;

var arr = Object.getOwnPropertyNames(data);

alert(arr.length == 0);//true

5.使用ES6的Object.keys()方法

与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组

var data = ;

var arr = Object.keys(data);

alert(arr.length == 0);//true

6.Object.keys(res.data.list).map(id =>

  let bankList =

    code: id,

    text: res.data.list[id]

  ;

  this.columns.push(bankList)

);

以上是关于判断一个对象上是不是包含 一个属性的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

js判断对象是不是为空对象的几种方法

python获取对象属性的几种方法

Shell判断字符串包含关系的几种方法

JS 判断某变量是不是为某数组中的一个值 的几种方法

armlinux下Shell判断字符串包含关系的几种方法

armlinux下Shell判断字符串包含关系的几种方法