在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C  HTML/ js if條件判斷請(qǐng)問這樣寫對(duì)嗎?

js if條件判斷請(qǐng)問這樣寫對(duì)嗎?

data[0].estate !== (0 || null || "")
回答
編輯回答
蔚藍(lán)色
console.log(!data[0].estate);

判斷是否為泛false

2018年9月19日 07:29
編輯回答
局外人

不對(duì)。
你這樣寫相當(dāng)于

data[0].estate !== ''
2017年6月22日 18:08
編輯回答
我不懂

你寫的肯定不對(duì)啊
估計(jì)你的目的是判斷3個(gè)可能,這樣寫是不對(duì)的,其等效于
data[0].estate !== "",這是因?yàn)槔ㄌ?hào)的優(yōu)先級(jí)問題。
估計(jì)你是想(data[0].estate !== 0 && data[0].estate !== null && data[0].estate !=="")
或者你具體描述一下你的需求。

2017年1月4日 23:51
編輯回答
陌顏

對(duì)于不對(duì)看你需求,別人不知道,一般來說我們這么寫:

if (typeof data[0].estate !== 'undefined') {
    // 表示至少設(shè)置了一個(gè)值
}

if (!!data[0].estate) {
    // 表示值不是 undefined,null,0,'',false
}

2017年4月25日 17:41
編輯回答
裸橙

沒有理解這樣寫的目的是想要啥...

首先來看(0 || null || "")。

這里 0 會(huì)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,等同于false。然后跳到null,null也是false,最后命令就等同于:data[0].estate !== ""

其實(shí)題主可以了解一下,js中if語句判斷的規(guī)則是怎么樣的,就能理解怎么做了...

如果只是想判斷data[0].estate不為null,不為0,不為空字符串的話,可以使用下面的幾種方法,前提要了解js的規(guī)則..

// 簡(jiǎn)單的if邏輯可以用 && 操作符強(qiáng)制轉(zhuǎn)換類型
data[0].estate && doSomething()

// status不為假值時(shí)
if (status) {
  // other code
}

// 穩(wěn)妥一點(diǎn)就通過邏輯非運(yùn)算符進(jìn)行取反
if (!!status) {
  // other code
}
2017年9月11日 10:01
編輯回答
熟稔

看你的代碼。。應(yīng)該是想要這樣的結(jié)果

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

如果確定了是這樣的需求,可以這樣來做:

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

includes為強(qiáng)類型匹配,不做自動(dòng)轉(zhuǎn)換

2017年2月25日 13:19
編輯回答
何蘇葉
0 || null -> null
null || "" -> ""
0 || null || "" -> ""

也就是說你括號(hào)里的內(nèi)容永遠(yuǎn)都會(huì)是個(gè)空字符串,如果你想判斷它是否非空,那么可以這樣:

let estate = data[0].estate
let isEmpty = !(estate && estate !== "")

因?yàn)?0null 都判定為 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

其實(shí)也就是 !!estate 了,!!可以轉(zhuǎn)換任何東西到一個(gè) bool 值。

2018年8月3日 12:30