📅  最后修改于: 2023-12-03 15:02:24.612000             🧑  作者: Mango
在编写 Javascript 代码时,经常需要检查对象是否为空。一个空的对象值为 null
或者 undefined
,如果不进行空值检查可能会引发运行时错误,因此在程序中进行检查是非常必要的。
我们可以使用 Object.keys(obj)
来判断对象是否为空,如果对象为空,则返回一个空的数组。
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
// 测试
console.log(isEmpty({})); // true
console.log(isEmpty({name: '张三', age: 18})); // false
除了使用 Object.keys(obj)
,我们还可以使用 Object.getOwnPropertyNames(obj)
来检查对象是否为空,使用方法与 Object.keys(obj)
类似。
function isEmpty(obj) {
return Object.getOwnPropertyNames(obj).length === 0;
}
// 测试
console.log(isEmpty({})); // true
console.log(isEmpty({name: '张三', age: 18})); // false
我们可以将对象转成 JSON 字符串,然后通过 .length
属性来检查字符串长度是否为 2
(只有 {}
这个空对象会被字符串化成 "{ }"
,长度为 2
)。
function isEmpty(obj) {
return JSON.stringify(obj).length === 2;
}
// 测试
console.log(isEmpty({})); // true
console.log(isEmpty({name: '张三', age: 18})); // false
我们可以使用 for...in
循环来检查对象是否为空,如果对象为空则循环不会执行。
function isEmpty(obj) {
for (var key in obj) {
return false;
}
return true;
}
// 测试
console.log(isEmpty({})); // true
console.log(isEmpty({name: '张三', age: 18})); // false
以上是四种检查对象是否为空的方法,可以根据实际需求选择其中一种进行使用。