Viac na
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.
56
3
Ak chcete skutočne potvrdiť, že premenná nie je nulová a nie je to konkrétne prázdny reťazec, napíšte:
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ť:
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 doif
:false
,0
,null
,undefined
a prázdne reťazce nie.Hodnoty
null
aj prázdny reťazec sú v JS falošné hodnoty. Preto,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ť:
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: