Javascript'te bir değerin null veya boş dize olup olmadığını kontrol eden bir kontrol var mı? Ben aşağıdakini kullanıyorum:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Ancak daha iyi bir çözüm olup olmadığını merak ediyorum. Teşekkürler.
Bir değişkenin null olmadığını ve özellikle boş bir dize olmadığını gerçekten doğrulamak istiyorsanız, şöyle yazarsınız:
if(data !== null && data !== '') {
// do something
}
Kodunuzu tür eşitliğini (!==
|===
) kontrol edecek şekilde değiştirdiğime dikkat edin.
Bununla birlikte, bir kodun yalnızca "makul" değerler için çalışacağından emin olmak istiyorsanız, başkalarının daha önce belirttiği gibi yazabilirsiniz:
if (data) {
// do something
}
Çünkü javascript'te hem null değerler hem de boş dizeler false'a eşittir (yani null == false
).
Bu 2 kod parçası arasındaki fark, ilki için, özellikle null veya boş bir dize olmayan her değerin if
e girecek olmasıdır. Ancak, ikincisinde, her doğru-ish değeri if
e girecektir: false
, 0
, null
, undefined
ve boş dizeler girmeyecektir.
Hem null
hem de boş dize JS'de hatalı değerlerdir. Bu nedenle,
if (data) { ... }
tamamen yeterlidir.
Yine de bir not: Kodumda farklı türlerde ortaya çıkabilecek bir değişken bulundurmaktan kaçınırdım. Eğer veri eninde sonunda bir string olacaksa, o zaman değişkenimi başlangıçta boş bir string ile tanımlardım, böylece bunu yapabilirsiniz:
if (data !== '') { ... }
null (ya da data = "0"
gibi garip şeyler) araya girmeden.
Hem null hem de empty aşağıdaki gibi doğrulanabilir:
<script>
function getName(){
var myname = document.getElementById("Name").value;
if(myname != '' && myname != null){
alert("My name is "+myname);
}else{
alert("Please Enter Your Name");
}
}