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

JavaScript022

js中如何判断一个属性是否属于某个对象,第1张

hasOwnProperty 方法

该方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。

var obj = {name:'jack'}obj.hasOwnProperty('name')// -->true

obj.hasOwnProperty('toString')// -->false

本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的

可以使用 instanceof操作符

var arrayStr=new Array("1","2","3","4","5")

alert(arrayStr instanceof Array)

当然以上在一个简单的页面布局里面是没有问题的,如果是复杂页面情况,入获取的是frame内部的Array对象,可以用这个函数判断:

function isArray(obj) {

return Object.prototype.toString.call(obj) === '[object Array]'

}

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)

})