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