Ako skontrolovať, či hodnota nie je null a nie je prázdny reťazec v JS

Existuje v Javascripte nejaká kontrola, či hodnota nie je null a nie je prázdny reťazec? Používam nasledujúci:

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

Ale zaujímalo by ma, či existuje iné lepšie riešenie. Ďakujem.

Riešenie

Ak chcete skutočne potvrdiť, že premenná nie je nulová a nie je to konkrétne prázdny reťazec, napíšte:

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

Všimnite si, že som zmenil váš kód tak, aby kontroloval rovnosť typov (!==|`===``).

Ak sa však chcete len uistiť, že sa kód spustí len pre "rozumné" hodnoty, potom môžete, ako už uviedli iní, napísať:

if (data) {
  // do something
}

Keďže v javascripte sa nulové hodnoty aj prázdne reťazce rovnajú false (t. j. null == false).

Rozdiel medzi týmito dvoma časťami kódu spočíva v tom, že v prípade prvej časti kódu sa každá hodnota, ktorá nie je konkrétne nulová alebo prázdny reťazec, dostane do if. V druhom prípade však každá hodnota podobná pravde vstúpi do if: false, 0, null, undefined a prázdne reťazce nie.

Komentáre (6)

Hodnoty null aj prázdny reťazec sú v JS falošné hodnoty. Preto,

if (data) { ... }

je úplne postačujúce.

Poznámka na okraj: vyhol by som sa tomu, aby som mal v kóde premennú, ktorá by sa mohla prejavovať v rôznych typoch. Ak budú údaje nakoniec reťazec, potom by som na začiatku definoval svoju premennú s prázdnym reťazcom, aby ste to mohli urobiť:

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

bez toho, aby sa vám do cesty postavil null (alebo nejaké čudné veci ako data = "0").

Komentáre (0)

Nulové aj prázdne hodnoty sa dajú overiť takto:

<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>
Komentáre (0)