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 为空