3 回答

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

TA貢獻1802條經驗 獲得超5個贊
您可以快捷方式x === undefined || x === null
到x == null
. 對于其他人來說,沒有捷徑,因為也有一些虛假的數值。但是你可以這樣做
const userHasPhoneNumber = typeof user.phone == "number" || !!user.phone
添加回答
舉報