该 if 语句不应检测 0;仅限 null 或空字符串

发布于 2024-09-26 18:38:22 字数 45 浏览 1 评论 0原文

使用 JavaScript,如何不检测 0,而是检测 null 或空字符串?

Using JavaScript, how do I NOT detect 0, but otherwise detect null or empty strings?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

旧时模样 2024-10-03 18:38:22

如果您想检测除零之外的所有 false 值:

if (!foo && foo !== 0) 

因此这将检测 null、空字符串、falseundefined 等。

If you want to detect all falsey values except zero:

if (!foo && foo !== 0) 

So this will detect null, empty strings, false, undefined, etc.

梦毁影碎の 2024-10-03 18:38:22

从您的问题标题:

if( val === null || val == "" )

我只能看到您在尝试将 val 与空字符串进行严格相等比较时忘记了 =

if( val === null || val === "" )

使用 Firebug 进行测试:

>>> 0 === null || 0 == ""
true

>>> 0 === null || 0 === ""
false

编辑: 请参阅 CMS 的评论以获取解释。

From your question title:

if( val === null || val == "" )

I can only see that you forgot a = when attempting to strict-equality-compare val with the empty string:

if( val === null || val === "" )

Testing with Firebug:

>>> 0 === null || 0 == ""
true

>>> 0 === null || 0 === ""
false

EDIT: see CMS's comment instead for the explanation.

倦话 2024-10-03 18:38:22
function isNullOrEmptyString(val) {
  return (val === null || val === '');
}

console.log({
"isNullOrEmptyString(0)": isNullOrEmptyString(0), 
"isNullOrEmptyString('')": isNullOrEmptyString(""), 
"isNullOrEmptyString(null)": isNullOrEmptyString(null),
"isNullOrEmptyString('something')": isNullOrEmptyString("something"),
});

function isNullOrEmptyString(val) {
  return (val === null || val === '');
}

console.log({
"isNullOrEmptyString(0)": isNullOrEmptyString(0), 
"isNullOrEmptyString('')": isNullOrEmptyString(""), 
"isNullOrEmptyString(null)": isNullOrEmptyString(null),
"isNullOrEmptyString('something')": isNullOrEmptyString("something"),
});

愿与i 2024-10-03 18:38:22

我知道这可能是一个太晚的答案,但它可能对其他人有帮助。

如果我理解正确,您希望下面的语句排除 0:

 if(!value) {
    //Do things
 }

我认为最简单的方法是编写如下语句:

if(!value && value !== 0) {
  //Do things
}

我希望这会有所帮助。

I know this might be a too late answer but it might help someone else.

If I understand you correctly you want the below statement to exclude the 0:

 if(!value) {
    //Do things
 }

I think the easiest way to do this is to write the statement like this:

if(!value && value !== 0) {
  //Do things
}

I hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文