Gibt es eine Prüfung, wenn ein Wert nicht null und nicht leere Zeichenfolge in Javascript ist? I'm mit der folgenden ein:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Aber ich frage mich, ob es eine andere bessere Lösung gibt. Danke!
Wenn Sie wirklich bestätigen wollen, dass eine Variable nicht null und nicht eine leere Zeichenkette ist, würden Sie schreiben:
if(data !== null && data !== '') {
// do something
}
Beachten Sie, dass ich Ihren Code geändert habe, um die Typengleichheit zu prüfen (!==
|===
).
Wenn Sie jedoch nur sicherstellen wollen, dass ein Code nur für "vernünftige" Werte ausgeführt wird, dann können Sie, wie andere schon gesagt haben, schreiben:
if (data) {
// do something
}
Da in Javascript sowohl Nullwerte als auch leere Zeichenketten gleich falsch sind (d.h. null == false
).
Der Unterschied zwischen diesen beiden Teilen des Codes besteht darin, dass im ersten Teil jeder Wert, der nicht explizit null oder eine leere Zeichenkette ist, in das "if" eintritt. Im zweiten Teil wird jeder Wert, der wahr ist, in die "if"-Funktion aufgenommen: "false", "0", "null", "undefiniert" und leere Zeichenketten werden nicht aufgenommen.
Sowohl null
als auch eine leere Zeichenkette sind falsche Werte in JS. Deshalb,
if (data) { ... }
völlig ausreichend.
Eine Anmerkung am Rande: Ich würde es vermeiden, eine Variable in meinem Code zu haben, die sich in verschiedenen Typen manifestieren könnte. Wenn die Daten schließlich eine Zeichenkette sein werden, würde ich meine Variable zunächst mit einer leeren Zeichenkette definieren, damit Sie dies tun können:
if (data !== '') { ... }
ohne die Null (oder andere seltsame Dinge wie data = "0"
) in den Weg zu bekommen.
Sowohl null als auch leer können wie folgt validiert werden:
<script>
function getName(){
var myname = document.getElementById("Name").value;
if(myname != '' && myname != null){
alert("My name is "+myname);
}else{
alert("Please Enter Your Name");
}
}