判断一个对象是否为空,介绍如下三种判断方法:
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('非空对象');
}
视频讲解是javascript面向对象编程语言中关于Object类的知识,重点讲解了通过该类中提供的方法hasOwnProperty可以判断属性是否存在。由于面向对象中的继承特性,那么其他对象也会自动拥有该方法。
Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。
现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下:
if (myObj不存在){
声明myObj;
}
你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。
Javascript判断对象是否为空第一种写法
if (!myObj) {
var myObj = { };
}
其它更多方法请参考:https://panxu.net/article/8374.html
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)//操作语句//
对象属性不存在,
声明了变量但从未赋值。实例:但是如果改为:typeof(ActiveXObject1)==undefined 则返回的是不存在了ActiveXObject1
另外typeof(t1)==undefined 如果这个对象不存在于该脚本范围内,或者如果t1 是声明的变量但是没有初始化也就是没有赋值两者都会返回undefined
判断元素是否存在: