3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用 JavaScript 的!!
,女巫將變成false
for null
、""
、undefined
and false
:
const user = {
phone_1: null,
phone_2: "",
phone_3: undefined,
phone_4: false
};
console.log(!!user.phone_1); // false
console.log(!!user.phone_2); // false
console.log(!!user.phone_3); // false
console.log(!!user.phone_4); // false

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您將該字符串強(qiáng)制為布爾值,那么它應(yīng)該檢查您的所有條件,這幾乎是檢查是否為user.phone
真。
這取決于您想如何使用它。如果您想在條件中使用它,即if(userHasPhoneNumber) ...
您可以直接使用字符串:if(user.phone)
因?yàn)樗鼘?qiáng)制轉(zhuǎn)換為布爾值。
如果您確實(shí)需要一個(gè)布爾變量,那么需要將其顯式轉(zhuǎn)換為布爾值:
要么通過(guò) const userHasPhoneNumber = Boolean(user.phone);
要么 const userHasPhoneNumber = !!user.phone;
請(qǐng)注意,正如 @Bergi 評(píng)論的那樣,有更多的值被強(qiáng)制為假值(假值),例如NaN
數(shù)字0
(字符串“0”將強(qiáng)制為真),所以這取決于您的輸入是什么。如果它從來(lái)都不是數(shù)字,而是字符串/布爾值/ null
/ undefined
,那么應(yīng)該沒問題。以下是供參考的所有虛假值的列表:https ://developer.mozilla.org/en-US/docs/Glossary/Falsy

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以快捷方式x === undefined || x === null
到x == null
. 對(duì)于其他人來(lái)說(shuō),沒有捷徑,因?yàn)橐灿幸恍┨摷俚臄?shù)值。但是你可以這樣做
const userHasPhoneNumber = typeof user.phone == "number" || !!user.phone
添加回答
舉報(bào)