Как проверить, не является ли значение не нулевой, а не пустой строкой в JS
Есть ли проверка, если значение не является нулевым и не пустой строкой в Javascript? Я использую следующее:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Но мне интересно, есть ли другое лучшее решение. Благодарю.
Ответы
Ответ 1
Если вы действительно хотите подтвердить, что переменная не является нулевой, а не пустой строкой, вы должны написать:
if(data !== null && data !== '') {
// do something
}
Обратите внимание, что я изменил код, чтобы проверить равенство типа (!==
| ===
).
Если, однако, вы просто хотите убедиться, что код будет работать только для "разумных" значений, вы можете, как уже заявили другие, написать:
if (data) {
// do something
}
Так как в javascript как нулевые, так и пустые строки равны false (т.е. null == false
).
Разница между этими двумя частями кода заключается в том, что для первого значения каждое значение, которое не является конкретно нулевым или пустым, вводит if
. Но, во втором, каждое истинное значение будет вводить if
: false
, 0
, null
, undefined
и пустые строки, не будет.
Ответ 2
Оба null
и пустая строка являются значениями ложности в JS. Следовательно,
if (data) { ... }
вполне достаточно.
Заметка на стороне, хотя: я бы избегал иметь переменную в моем коде, которая могла бы проявляться в разных типах. Если в конечном итоге данные будут строкой, тогда я бы сначала определил свою переменную с пустой строкой, поэтому вы можете сделать это:
if (data !== '') { ... }
без нулевого (или какого-нибудь странного материала, такого как data = "0"
), мешающего.
Ответ 3
И 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");
}
}
Ответ 4
Вместо того, чтобы использовать
if(data !== null && data !== '' && data!==undefined) {
// do something
}
Вы можете использовать ниже простой код
if(Boolean(value)){
// do something
}
- Значения, которые интуитивно "пустые", такие как 0, пустая строка, null, undefined и NaN, становятся ложными
- Другие ценности становятся правдой
Ответ 5
попробуй ----------
function myFun(){
var inputVal=document.getElementById("inputId").value;
if(inputVal){
document.getElementById("result").innerHTML="<span style='color:green'>The value is "+inputVal+'</span>';
}
else{
document.getElementById("result").innerHTML="<span style='color:red'>Something error happen! the input May be empty.</span>";
}
}
<input type="text" id="inputId">
<input type="button" onclick="myFun()" value="View Result">
<h1 id="result"></h1>
Ответ 6
Я часто проверяю истинное значение, а также пустые места в строке:
if(!(!data || data.trim().length === 0)) {
// do something here
}
Если у вас есть строка, состоящая из одного или нескольких пустых мест, она будет иметь значение true.