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
原文地址:https://www.cnblogs.com/testopsfeng/p/15261859.html