Há alguma verificação se um valor não é nulo e não está vazio em Javascript? I'm usando o seguinte:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Mas I'estou me perguntando se existe outra solução melhor. Obrigado.
Se você realmente quiser confirmar que uma variável não é nula e não uma string vazia especificamente, você escreveria:
if(data !== null && data !== '') {
// do something
}
Note que eu alterei o seu código para verificar a igualdade de tipo (!===
|====
).
Se, no entanto, você só quer ter certeza de que um código será executado apenas para "reasonable" valores, então você pode, como outros já afirmaram, escrever:
if (data) {
// do something
}
Uma vez que, em javascript, tanto valores nulos, como cordas vazias, são iguais a falsos (i.e. nulo ==falso
).
A diferença entre essas 2 partes de código é que, para a primeira, todo valor que não seja especificamente nulo ou uma string vazia, irá entrar o if
. Mas, na segunda, todo valor verdadeiro entrará com o if
: falso
, 0
, nulo
, finido
e strings vazias, não entrarão.
Tanto o valor "nulo" como um fio vazio são valores falsificados no JS. Portanto,
if (data) { ... }
é completamente suficiente.
Uma nota ao lado: eu evitaria ter uma variável no meu código que poderia se manifestar em diferentes tipos. Se os dados acabarem por ser uma string, então eu definiria inicialmente a minha variável com uma string vazia, para que você possa fazer isso:
if (data !== '') { ... }
sem que o nulo (ou qualquer coisa estranha como dados = "0"
) se interponha no caminho.
Tanto o nulo como o vazio podem ser validados da seguinte forma:
<script>
function getName(){
var myname = document.getElementById("Name").value;
if(myname != '' && myname != null){
alert("My name is "+myname);
}else{
alert("Please Enter Your Name");
}
}