2017-04-09 52 views
12

是否有任何检查如果一个值不为空,而不是空的字符串在Javascript中?我使用下列之一:如何检查一个值是否为空而不是空字符串中的JS

var data; //get its value from db 
 
if(data != null && data != '') { 
 
    // do something 
 
}

但我不知道是否有其他更好的解决方案。谢谢。

+6

'如果(数据)'就足够了,因为它说[这里](http://stackoverflow.com/a/4361614/3512538) – CIsForCookies

+1

我试过这个,但在两种情况之一,它不工作。 –

+0

谢谢大家,我会试试这个。我希望它会起作用。 –

回答

21

如果你真的想确认一个变量不为空,而不是一个空字符串具体而言,你可以这样写:

if(data !== null && data !== '') { 
    // do something 
} 

请注意,我改变了你的代码来检查类型相等(!== | ===) 。

但如果你只是想确保,一个代码将运行只为“合理”值,那么你可以像其他人已经指出的那样,写:

if (data) { 
    // do something 
} 

因为在JavaScript中,空值和空字符串均等于假(即null == false)。

这两部分代码之间的区别在于,对于第一部分,每个非特定空值或空字符串的值都将输入if。但是,在第二种情况下,每个真实值都将输入iffalse,0,null,undefined和空字符串,则不会。

+0

0在很多情况下是合理的值 – Aequitas

+0

这就是为什么合理的单词用引号括起来:) –

+0

所以'if(!data){..}'不起作用呢? – Adam

6

null和一个空字符串都是JS中的falsy值。因此,

if (data) { ... } 

是完全足够的。

尽管在旁边的说明:我会避免在我的代码中有一个变量,可以显示在不同类型。如果数据最终将是一个字符串,那么我将首先定义我的变量,一个空字符串,那么你可以这样做:

if (data !== '') { ... } 

没有的方式获得空(或类似data = "0"任何奇怪的东西)。

相关问题