前端判断对象是否为空的几种方法

博客介绍了JavaScript中判断对象是否为空的多种方法,包括使用JSON将对象转字符串,利用Object.getOwnPropertyNames和Object.keys获取对象属性名称,引用jQuery方法,还给出了jQuery判断空对象的源码,以及使用for循环遍历对象来判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用JSON把对象转换成字符串

let obj1 = {};
let obj2 = {a: 'a', b: 12, c: [1,2,3]};
function isEmptyObject(obj) {
    let objStr = JSON.stringify(obj);
    if(objStr == '{}') {
        return true;
    } else {
        return false;
    }
}
isEmptyObject(obj1); // true
isEmptyObject(obj2); // false

2.使用Object.getOwnPropertyNames,返回一个数组,数组会获取到此对象 所有可枚举和不可枚举 的属性名称

let obj1 = {};
let obj2 = {a: 'a', b: 12, c: [1,2,3]};
function isEmptyObject(obj) {
    let keys = Object.getOwnPropertyNames(obj);
    if(keys.length == 0) {
        return true;
    } else {
        return false;
    }
}
isEmptyObject(obj1); // true
isEmptyObject(obj2); // false

3.使用Object.keys,同样返回一个数组,数组会获取到此对象 所有可枚举 的属性名称

let obj1 = {};
let obj2 = {a: 'a', b: 12, c: [1,2,3]};
function isEmptyObject(obj) {
    let keys = Object.keys(obj);
    if(keys.length == 0) {
        return true;
    } else {
        return false;
    }
}
isEmptyObject(obj1); // true
isEmptyObject(obj2); // false

4.使用jQuery的方法(需要引用jQuery)

let obj1 = {};
let obj2 = {a: 'a', b: 12, c: [1,2,3]};
$.isEmptyObject(obj1); // true
$.isEmptyObject(obj2); // false

此处再贴上jQuery的判断空对象的源码,很简单的一段,和第5种一样

isEmptyObject: function( obj ) {
	var name;

	for ( name in obj ) {
		return false;
	}
	return true;
}
// 不过不太明白大佬为什么要把 name 放在外面声明,是否有什么玄机

5.使用for循环,如果可以遍历证明非空,反之,则是空对象

let obj1 = {};
let obj2 = {a: 'a', b: 12, c: [1,2,3]};
function isEmptyObject(obj) {
    for(let key in obj) {
        return false;
    }
    return true;
}
isEmptyObject(obj1); // true
isEmptyObject(obj2); // false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值