如何在JS中检查一个值是否为空和非空字符串

在Javascript中是否有任何检查一个值是否为空和非空字符串的方法?我使用的是下面这个。

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

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

解决办法

如果你真的想确认一个变量不是空的,而不是一个空字符串,你会写。

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

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

然而,如果你只是想确保,代码只对"合理"的值运行,那么你可以,正如其他人已经说过的,写。

if (data) {
  // do something
}

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

这两部分代码的区别在于,对于第一部分,每一个不是空值或空字符串的值都会进入`if'。但是,在第二部分中,每一个真实的值都会进入 "if":"false"、"0"、"null"、"undefined "和空字符串则不会。

评论(6)

在JS中,"null "和空字符串都是虚假的值。因此。

if (data) { ... }

是完全足够的。

不过有一点要注意:我会避免在我的代码中出现一个可能表现为不同类型的变量。如果数据最终将是一个字符串,那么我最初会用一个空字符串来定义我的变量,这样你就可以做到这一点。

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

这样你就可以这样做了:{{45251830}},而不会有null(或任何奇怪的东西,如data = "0")碍事了。

评论(0)

null和empty都可以被验证,如下所示。

<script>
function getName(){
    var myname = document.getElementById("Name").value;
    if(myname != '' && myname != null){
        alert("My name is "+myname);
    }else{
        alert("Please Enter Your Name");
    }       
}
</script>
评论(0)