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
添加回答
举报