为了账号安全,请及时绑定邮箱和手机立即绑定

js if条件判断请问这样写对吗?

js if条件判断请问这样写对吗?

烙印99 2019-03-19 17:19:39
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 值。


查看完整回答
反对 回复 2019-04-04
?
jeck猫

TA贡献1909条经验 获得超7个赞

看你的代码。。应该是想要这样的结果

data[0].estate !== 0 && data[0].estate !== null && data[0].estate !== ""

如果确定了是这样的需求,可以这样来做:

![0, null, ""].includes(data[0].estate)

includes为强类型匹配,不做自动转换


查看完整回答
反对 回复 2019-04-04
  • 7 回答
  • 0 关注
  • 616 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信