Има ли някаква проверка дали дадена стойност не е null и не е празен низ в Javascript? Използвам следната:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Но се чудя дали има друго по-добро решение. Благодаря.
Ако наистина искате да потвърдите, че дадена променлива не е null и не е празен низ, ще напишете:
if(data !== null && data !== '') {
// do something
}
Забележете, че промених кода ви, за да проверявам за равенство на типовете (!==
|`===``).
Ако обаче просто искате да сте сигурни, че кодът ще се изпълнява само за "разумни" стойности, тогава можете, както вече заявиха други, да напишете:
if (data) {
// do something
}
Тъй като в javascript и нулевите стойности, и празните низове са равни на false (т.е. null == false
).
Разликата между тези две части на кода е, че в първата всяка стойност, която не е нулева или празен низ, ще влезе в if
. Но във втората всяка стойност, подобна на true, ще влезе в if
: false
, 0
, null
, undefined
и празните низове няма да влязат.
Както null
, така и празният низ са неверни стойности в JS. Следователно,
if (data) { ... }
е напълно достатъчен.
Все пак една забележка отстрани: бих избягвал да имам променлива в кода си, която може да се проявява в различни типове. Ако данните в крайна сметка ще бъдат низ, тогава първоначално бих дефинирал променливата си с празен низ, за да можете да направите това:
if (data !== '') { ... }
без да се пречи на нулевата стойност (или на някакви странни неща като data = "0"
).
Както null, така и empty могат да бъдат валидирани по следния начин:
<script>
function getName(){
var myname = document.getElementById("Name").value;
if(myname != '' && myname != null){
alert("My name is "+myname);
}else{
alert("Please Enter Your Name");
}
}