为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2024-01-18 10:53:40
我正在寻找检查,如果我的变量是以下之一:null || undefined || empty string || false现在它看起来又乱又长:const userHasPhoneNumber = user.phone === undefined ||                             user.phone === "" ||                             user.phone === false ||                            user.phone === null ? false : true;有捷径吗?
查看完整描述

3 回答

?
HUX布斯

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



查看完整回答
反对 回复 2024-01-18
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

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

这取决于您想如何使用它。如果您想在条件中使用它,即if(userHasPhoneNumber) ...您可以直接使用字符串:if(user.phone)因为它将强制转换为布尔值。

如果您确实需要一个布尔变量,那么需要将其显式转换为布尔值:

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

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


查看完整回答
反对 回复 2024-01-18
?
慕后森

TA贡献1802条经验 获得超5个赞

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

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


查看完整回答
反对 回复 2024-01-18
  • 3 回答
  • 0 关注
  • 38 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信