繁体   English   中英

检查变量是否为 null 的快捷方式 || 未定义||空字符串||false

[英]shortcut to check if variable is null || undefined||empty string||false

我正在寻找检查,如果我的变量是以下之一: null || undefined || empty string || false null || undefined || empty string || false

现在它看起来凌乱而漫长:

const userHasPhoneNumber = user.phone === undefined || 
                           user.phone === "" || 
                           user.phone === false ||
                           user.phone === null ? false : true;           

有捷径吗?

如果您将该字符串强制为 boolean 那么它应该检查您的所有条件,这几乎是检查user.phone是否真实。

这取决于你想如何使用它。 如果您想在某个条件下使用它,即if(userHasPhoneNumber)...那么您可以直接使用字符串: if(user.phone) ,因为它将强制转换为 boolean。

如果您确实需要一个 boolean 变量,则需要明确地将其转换为 boolean :

通过const userHasPhoneNumber = Boolean(user.phone); const userHasPhoneNumber =.;user.phone;

请注意,正如@Bergi 评论的那样,有更多值被强制为假值(假值),例如NaN或数字0 (字符串“0”将强制为真),所以这取决于您的输入是什么. 如果它不是数字,而是字符串/布尔值/ null / undefined ,应该没问题。 以下是所有虚假值的列表供参考: https://developer.mozilla.org/en-US/docs/Glossary/Falsy

您可以快捷方式x === undefined || x === null x === undefined || x === nullx == null 对于其他人来说,没有捷径可走,因为也有一些虚假的数值。 但是你可以这样做

const userHasPhoneNumber = typeof user.phone == "number" || !!user.phone

使用 JavaScript 的!! , 对于null , "" , undefinedfalse , 女巫将变为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

注意请谨慎使用,因为某些结果可能与预期不同,此答案显示完整列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM