判断一个对象是否存在if(a) { }究竟判断了什么?

判断一个对象是否存在

实际开发中,若要判断一个对象是否存在,最常用的方法是:

if(a){
  // 存在
  ...
}else{
  // 不存在
  ...
}

有没有想过,a的取值在哪种情况下会存在,哪种情况下会不存在?

常见到的异常值:" " 、undefined、false、0、null
试一试:这里面哪几个值会判定a存在?


image.png

判断一个对象的内存属性是否可用

如果要读取某个对象的内部属性,我们往往也是需要先判断一下这个对象是否存在
除了三元运算符 ?: 外,ES2020引入了链判断运算符 ?.

if(a?.length){
 // 存在
}


a?.b
// 等同于
a == null ? undefined : a.b

左侧的对象是否为null或undefined。如果是,就不再往下运算,直接返回undefined。

你可能感兴趣的:(判断一个对象是否存在if(a) { }究竟判断了什么?)