js 对不明类型的对象判断是否为空

"本文探讨了JavaScript中如何优化if语句,特别是针对any变量的空值检查。介绍了if(any)和if(!any)等价的条件,并针对Number、String和Boolean类型进行了说明。此外,提出了一种方法来检查对象是否为空对象{}
摘要由CSDN通过智能技术生成

首先是最常用的表达式if(any)和if(!any),对于一般对象if(any)等价于if(any != null && any != undefined),if(!any)等价于if(any == null && any == undefined)

对于特定类型,或者说最常用的基本类型

  • 如果是Number类型,等价于if(any != null && any != undefined && any != 0)
  • 如果是String类型,等价于if(any != null && any != undefined && any != "")
  • 如果是Boolean类型,等价于if(any != null && any != undefined && any != false)

所以能满足大部分的情况,但是对于空对象{}和空数组[]就无能为力了

我的思路是,如果是对象,就遍历它的key然后去判断长度如果为0就为{},当然也可以直接转成字符串然后和"{}"比较,

类似的,如果是数组,就判断它的length如果为0就为[],也可以直接转成字符串然后和"[]"比较,代码实现如下

const isEmpty = function(any){
	if(any){
        //数组必须放在对象之前判断,数组也是对象
		if(any instanceof Array){
			return any.length == 0;
		}
		//是对象类型的
	    if(any instanceof Object){
			return Object.keys(any).length == 0;
		}
		return false;
	}
	//是基本类型中的空值
	return true
}

测试代码如下

console.warn("isEmpty('')", isEmpty(''));
console.warn("isEmpty(0)", isEmpty(0));
console.warn("isEmpty(false)", isEmpty(false));
console.warn("isEmpty(null)", isEmpty(null));
console.warn("isEmpty(undefined)", isEmpty(undefined));
console.warn("isEmpty({})", isEmpty({}));
console.warn("isEmpty([])", isEmpty([]));

console.warn("isEmpty('123')", isEmpty('123'));
console.warn("isEmpty(10)", isEmpty(10));
console.warn("isEmpty(true)", isEmpty(true));
console.warn("isEmpty({a: 123})", isEmpty({a: 123}));
console.warn("isEmpty(['aaa'])", isEmpty(['aaa']));

Chrome浏览器运行结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

free5156

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值