Esiste un controllo se un valore non è nullo e non è una stringa vuota in Javascript? Sto usando il seguente:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Ma mi sto chiedendo se c'è un'altra soluzione migliore. Grazie.
Se volete veramente confermare che una variabile non è null e non è una stringa vuota nello specifico, scrivete:
if(data !== null && data !== '') {
// do something
}
Notate che ho cambiato il vostro codice per controllare l'uguaglianza di tipo (!==
|===
).
Se, tuttavia, volete solo assicurarvi che un codice venga eseguito solo per valori "ragionevoli", allora potete, come altri hanno già detto, scrivere:
if (data) {
// do something
}
Poiché, in javascript, sia i valori nulli che le stringhe vuote sono uguali a false (cioè null == false
).
La differenza tra queste 2 parti di codice è che, nella prima, ogni valore che non sia specificamente nullo o una stringa vuota, entrerà nel if
. Ma, nella seconda, ogni valore vero entrerà nel if
: false
, 0
, null
, undefined
e stringhe vuote, no.
Sia null
che una stringa vuota sono valori falsi in JS. Pertanto,
if (data) { ... }
è completamente sufficiente.
Una nota a margine però: eviterei di avere una variabile nel mio codice che potrebbe manifestarsi in diversi tipi. Se i dati saranno alla fine una stringa, allora definirei inizialmente la mia variabile con una stringa vuota, in modo da poterlo fare:
if (data !== '') { ... }
senza che il null (o qualsiasi cosa strana come data = "0"
) si metta in mezzo.
Sia null che empty potrebbero essere convalidati come segue:
<script>
function getName(){
var myname = document.getElementById("Name").value;
if(myname != '' && myname != null){
alert("My name is "+myname);
}else{
alert("Please Enter Your Name");
}
}
{{{45251831}};