JavaScript里,对象(object)和字典(dictionary, 或者有些语言叫map)的边界非常模糊。
初始化一个{}对象 :
let obj={},
错误判断:
一开始以为是直接判空即可,但是结果是不为空的
let obj={};
if(obj){
console.log('obj 不为空')
}else{
console.log('obj为空')
}
结果:

其他判断方法:
方法1:
最直接判断长度:
let obj={
};
if(Object.keys(obj).length>0){
console.log('obj 不为空')
}else{
console.log('obj为空')
}
结果:

示例2:
let obj={
"a":'1'
};
if(Object.keys(obj).length>0){
console.log('obj 不为空')
}else{
console.log('obj为空')
}
输出结果:obj不为空
此方法与: (Object.getOwnPropertyNames(obj).length==0 判断类似的。
方法2:JSON.stringify()方法转换
let obj={
};
if(JSON.stringify(obj)==='{}'){
console.log('obj 为空')
}else{
console.log('obj 不为空')
}
结果是:obj 为空
文章讨论了在JavaScript中如何判断一个对象是否为空,指出直接使用逻辑判断可能不准确,推荐使用`Object.keys(obj).length`或`JSON.stringify(obj)`来检查。示例展示了不同判空方法的运用和结果。

1万+

被折叠的 条评论
为什么被折叠?



