[英]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 === null
到x == null
。 对于其他人来说,没有捷径可走,因为也有一些虚假的数值。 但是你可以这样做
const userHasPhoneNumber = typeof user.phone == "number" || !!user.phone
使用 JavaScript 的!!
, 对于null
, ""
, undefined
和false
, 女巫将变为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.