Sådan kontrolleres det, om en værdi ikke er nul og ikke tom streng i JS

Er der nogen mulighed for at kontrollere, om en værdi ikke er nul og ikke tom streng i Javascript? I'm bruger den følgende:

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

Men I'm spekulerer på, om der er en anden bedre løsning. Tak.

Løsning

Hvis du virkelig ønsker at bekræfte, at en variabel ikke er nul og ikke en tom streng, skal du skrive:

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

Bemærk, at jeg har ændret din kode til at kontrollere for type lighed (!==|===).

Hvis du derimod bare vil sikre dig, at en kode kun kører for "rimelige" værdier, så kan du, som andre allerede har nævnt, skrive:

if (data) {
  // do something
}

Da i javascript er både nulværdier og tomme strenge lig med false (dvs. null == false).

Forskellen mellem disse 2 kodedele er, at i den første del af koden vil enhver værdi, der ikke specifikt er nul eller en tom streng, indgå i if. Men i den anden del vil alle sande værdier indgå i if: false, 0, null, undefined og tomme strenge vil ikke indgå i if.

Kommentarer (6)

Både null og en tom streng er falske værdier i JS. Derfor er,

if (data) { ... }

er fuldt ud tilstrækkeligt.

En note ved siden af dog: Jeg ville undgå at have en variabel i min kode, der kan manifestere sig i forskellige typer. Hvis dataene i sidste ende vil være en streng, så ville jeg i første omgang definere min variabel med en tom streng, så du kan gøre dette:

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

uden at null (eller andre mærkelige ting som data = "0") kommer i vejen.

Kommentarer (0)

Både null og empty kan valideres på følgende måde:

<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>
Kommentarer (0)