这个if语句不应该检测0;只有null或空字符串

时间:2010-10-08 04:59:24

标签: javascript null if-statement

使用JavaScript,我怎么不检测0,否则检测空或空字符串?

4 个答案:

答案 0 :(得分:24)

如果要检测除零以外的所有假值:

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

因此,这会检测到null,空字符串,falseundefined等。

答案 1 :(得分:23)

从你的问题标题:

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

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

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

使用Firebug进行测试:

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

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

编辑:请参阅CMS的评论,而不是解释。

答案 2 :(得分:0)

如果我理解正确,你想检测非空字符串吗?

function isNonEmptyString(val) {
  return (typeof val == 'string' && val!='');
}
/*
  isNonEmptyString(0); // returns false
  isNonEmptyString(""); // returns false
  isNonEmptyString(null); // returns false
  isNonEmptyString("something"); // returns true
*/

答案 3 :(得分:-1)

我知道这可能为时已晚,但可能会对其他人有所帮助。

如果我对您的理解正确,那么您希望以下语句排除0:

 if(!value) {
    //Do things
 }

我认为最简单的方法是这样编写语句:

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

我希望这会有所帮助。