3 回答
TA貢獻1876條經驗 獲得超6個贊
使用 JavaScript 的!!,女巫將變成falsefor null、""、undefinedand 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
添加回答
舉報
