使用JavaScript,我怎么不检测0,否则检测空或空字符串?
答案 0 :(得分:24)
如果要检测除零以外的所有假值:
if (!foo && foo !== 0)
因此,这会检测到null
,空字符串,false
,undefined
等。
答案 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
}
我希望这会有所帮助。