前端判断对象为空

本文介绍了如何使用JSON.stringify()、for...in循环、isEmptyObject函数、Object.getOwnPropertyNames()和Object.keys()方法在JavaScript中判断对象是否为空,以及它们各自的优缺点和适用场景。
摘要由CSDN通过智能技术生成

一.使用JSON.stringify()方法:

JSON.stringify() 是将一个JavaScript对象或值转换为JSON格式字符串,如果最终只得到一个{},就说明他是一个空对象
let obj1 = {};
console.log(JSON.stringify(obj1) === "{}");  //true 表示为空对象

let obj2 = { age:18 };
console.log(JSON.stringify(obj2) === "{}");  //false 表示不为空对象

二.for in 循环判断

使用for…in循环遍历对象属性,并使用obj.hasOwnProperty()检查属性是否属于对象本身,如果存在任何属性,则返回false,否则返回true。
//封装判断函数
function isEmptyObject(obj) {
    for (let key in obj) {
        if (obj.hasOwnProperty(key))
            return false;
    }
    return true;
}

const obj1 = {};
//调用
console.log(isEmptyObject(obj1)); // true 表示为空对象

const obj2 = {age: 18 };
//调用 
console.log(isEmptyObject(obj2)); // false  表示不为空对象

三.Object.getOwnPropertyNames()方法 

此方法是使用Object对象的getOwnPropertyNames()方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空

注意:此方法不兼容ie8

const obj1 = {};
console.log(Object.getOwnPropertyNames(obj1).length === 0); // true  //空对象

const obj2 = { age: '18' };
console.log(Object.getOwnPropertyNames(obj2).length === 0); // false //不为空对象

四.使用ES6的Object.keys()方法

主要是获取对象的键名,将对象的属性转换成数组,通过是否存在键名(数组的长度是否为0)而判断是否为空
let obj1 = {};
console.log(Object.keys(obj1).length == 0);//true  空对象

let obj2 = { age:18 };
console.log(Object.keys(obj2).length == 0);//false  不为空对象

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值