js判断对象是否为空的方法

  1. 使用JSON.stringify将对象转换成字符串
  • 返回字符串

  • 转换过程中会将函数去掉

 function count(x,y){
        return x+y;
    }
    const infor={
        a:"b", 
        add:1,
        arr,
        count
    };
    const inforOne={};
    //使用扩展字符串
    console.log(JSON.stringify(infor)=="{}");//false
    console.log(JSON.stringify(inforOne)=="{}"); //true

将对象通过JSON.stringify转换成字符串不会转换函数,例如infor对象中的count。被转换成字符串后就可以进行字符串判断。

  1. 使用Object.keys() 返回一个数组
  • 返回数组

  • 返回的数组中包括对象自身的所有可以枚举属性的键名

  • 不含Symbol属性的键名,不返回继承的属性的键名

    //使用Object.keys() 返回一个数组,
    //包括对象自身的所有可以枚举属性(不含Symbol属性,不返回继承)的键名 
    console.log(Object.keys(infor));// ["a", "add", "arr", "count"]
    console.log(Object.keys(inforOne));//[]
    
    console.log(Object.keys(infor).length==0);//false
    console.log(Object.keys(inforOne).length==0);//true
  1. 使用Object.getOwnPropertyNames()返回一个数组
  • 返回数组

  • 返回的数组中包括对象自身的所有属性的键名

  • 不返回Symbol属性的键名,不返回继承的属性的键名

  • 有兼容性,不兼容ie8

   //使用Object.getOwnPropertyNames()回一个数组,
 //包括对象自身的所有属性(不含Symbol属性,包括不可枚举属性)的键名 不返回继承的键名
    //此方法不兼容ie8
    console.log(Object.getOwnPropertyNames(infor));// ["a", "add", "arr", "count"]
    console.log(Object.getOwnPropertyNames(inforOne)); //[]
  1. 使用for…in循环
// for in循环
    function test(infor){
        for(let key in infor){
            return false;
        }
        return true;
    }
    console.log(test(infor));//false
    console.log(test(inforOne));//true
  1. 使用Reflect.ownKeys(obj)
  • 返回数组

  • 包含对象自身的所有键名

  • 不包含继承的属性的键名

//Reflect.ownKeys(obj) 返回一个数组,
//包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。 
    console.log(Reflect.ownKeys(infor));//["a", "add", "arr", "count"]
    console.log(Reflect.ownKeys(inforOne));//[]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值