JS怎么判断一个对象是否为空

如题所述

判断一个对象是否为空,介绍如下三种判断方法:

1、直接用for...in...遍历属性,结果为真是“非空数组”,否则是“空数组”,代码如下:

function judgeObj(obj){

for(var a in obj){

return alert('非空对象')

}

return alert('空对象')

}

2、通过JSON自带的.stringify方法来判断,代码如下:

if(JSON.stringify(c)=='{}'){

console.log('空对象');

}

3、ES6新增的方法Object.keys(),代码如下:

if(Object.keys(obj).length==0){

console.log('空对象');

}else{

console.log('非空对象');

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-29

视频讲解是javascript面向对象编程语言中关于Object类的知识,重点讲解了通过该类中提供的方法hasOwnProperty可以判断属性是否存在。由于面向对象中的继承特性,那么其他对象也会自动拥有该方法。

第2个回答  2019-01-26
Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。
现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下:
if (myObj不存在){
声明myObj;
}

你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。
Javascript判断对象是否为空第一种写法
if (!myObj) {
var myObj = { };
}

其它更多方法请参考:https://panxu.net/article/8374.html
第3个回答  2017-01-15
var obj = {};

obj == false; // true
// 所以可以这样:
if (obj) {
// 这个意思是把obj强制转换成bool值,故会被转成false然后在if中做判断
// false
} else {
// true
}

// 如果obj不是一个空对象
var obj = {id: 1};

obj == true; // true
// 原理同上

或者 :
var obj=null;
if(!obj){
//TODO:如果为空执行的代码
}

js

实例如下:if (typeof(obj) == undefined) {//操作语句}如果typeof(obj) == undefined 为true则该对象不存在,当前脚本还没有定义该对象
其他的写法要注意:
// 这种方法不起作用
if (x == undefined)//操作语句//
对象属性不存在,
声明了变量但从未赋值。实例:<html<body
<script type=text/javascript
if (typeof(ActiveXObject)==undefined)
{alert(不存在ActiveXObject)}else
{alert(存在ActiveXObject!!)}
</script</body
</html //返回的是:存在ActiveXObject,因为该对象是js里已经制定的对象已经由js定义声明过的,只要是js制定存在的都是非 undefined
但是如果改为:typeof(ActiveXObject1)==undefined 则返回的是不存在了ActiveXObject1
另外typeof(t1)==undefined 如果这个对象不存在于该脚本范围内,或者如果t1 是声明的变量但是没有初始化也就是没有赋值两者都会返回undefined
判断元素是否存在:
<script language=javascript
function changelocation(){
if(document.getElementById(payment_info))
alert('true');else
alert('false');}
</script>本回答被提问者采纳
相似回答