data[0].estate !== (0 || null || "")
7 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
0 || null -> null
null || "" -> ""
0 || null || "" -> ""
也就是说你括号里的内容永远都会是个空字符串,如果你想判断它是否非空,那么可以这样:
let estate = data[0].estate
let isEmpty = !(estate && estate !== "")
因为 0 和 null 都判定为 false,因此
let a;
let c;
a = 0; c = !(a && a !== '') -> true
a = ''; c = !(a && a !== '') -> true
a = null; c = !(a && a !== '') -> true
a = 1; c = !(a && a !== '') -> false
a = 'foo'; c = !(a && a !== '') -> false
a = {}; c = !(a && a !== '') -> false
其实也就是 !!estate 了,!!可以转换任何东西到一个 bool 值。
jeck猫
TA贡献1909条经验 获得超7个赞
看你的代码。。应该是想要这样的结果
data[0].estate !== 0 && data[0].estate !== null && data[0].estate !== ""
如果确定了是这样的需求,可以这样来做:
![0, null, ""].includes(data[0].estate)
includes为强类型匹配,不做自动转换
添加回答
举报
0/150
提交
取消