JavaScript:对象判空的问题
在JavaScript中,对一般类型判空,我会使用双叹号
"!!"一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
const demo = null;
if (!!demo) {
console.log(true)
}else {
console.log(false)
}
// output: false
在对于 object 类型,会存在一些问题,如:
const demo = {a: null}
if (!!demo) {
console.log(true)
}else {
console.log(false)
}
// output: true
以上代码,会输出true
。如果想要判断demo.a
为空,需要:
const demo = {a: null}
if (!!demo.a) {
console.log(true)
}else {
console.log(false)
}
// output: false