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.
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.
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"
).
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");
}
}