JavaScript 判断对象为空的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37263637/article/details/83512241

1 背景

经常在express 框架中处理body参数等等操作,而有时经常没有传入某个对象参数,而程序里又对该对象的属性进行了操作,这就会导致比较严重的后果。没有异常捕获就会导致宕机,比如下列code:

let item = {
    high:23,
    width:32
}
let test = undefined;
console.info(item.high);
try{
    console.info(test.high);
}catch(e){
    console.info(e)
}
console.info("hello node")

把try catch语句去掉就会导致根本程序跑不到hello node语句。所以我们对对象属性操作前对应该对对象是否为空进行判断。

2 方法

Javascirpt 原生并没有提供判断对象是否为空的方法。经过查阅资料,在浏览器上 可以使用JQuery的方法进行判断。但在node环境内需要自己实现方法进行判断。

2.1 Jquery 的isEmptyObject

$.isEmptyObject({})
true
$.isEmptyObject({foo:1})
False

2.2 node

我们可以看到Jquery isEmptyObject方法的实现:

function isEmptyObject(e) {
	var t;
	for (t in e)
		return !1;
	return !0
}

for…in循环遍历对象自身的和继承的可枚举属性(但不含 Symbol 属性)。

2.3 判断对象属性个数

经常在写接口测试时,需要对返回对象进行check ,通过对上面for in 可以写个方法来判断对象成员个数

let checkObjectKeyNum = function(object, targetNum){
        let objectPrototypeCount = 0; 
        for (let i  in object){
            objectPrototypeCount++;
        }
        return expect(objectPrototypeCount).to.be.equal(targetNum);
}

猜你喜欢

转载自blog.csdn.net/m0_37263637/article/details/83512241
今日推荐