JavaScript'te null ve undefined arasındaki fark
Referans
JavaScriptBoş değerin tipik kullanımı
Bir fonksiyon parametresi olarak, fonksiyon parametresinin bir nesne olmadığı anlamına gelir
function myFn(obj) {
if(null == obj) {
// code
}
}
Nesne prototip zincirinin sonu olarak
Object.getPrototypeOf(Object.prototype);
Değişkeni serbest bırakırken, değişkene null atayın
let o={
code:'abc'
};
o = null;
Tanımlanmamış tipik kullanımı
Değişken bildirildi ancak atanmadı, değişkenin değeri tanımsız
let o;
console.log(o); //undefined
Fonksiyonun sağlaması gereken parametre arama sırasında sağlanmıyorsa, bu durumda sağlanmayan parametrenin değeri tanımsızdır
function myFn(o) {
console.log(o);
}
myFn(); //undefined
Nesnenin içermediği özellikler, değer tanımsızdır
let o={
code:'abc'
};
console.log(o.name); //undefined
İşlev bir değer döndürmediğinde, varsayılan olarak tanımsız döndürür
function myFn(obj) {
obj = 'a';
}
console.log(myFn()); //undefined
Null ve undefined arasındaki benzerlikler
Boolean dönüştürüldüğünde yanlış
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
Null ve undefined arasındaki fark
Bir sayıya dönüştürüldüğünde sonuç farklıdır.Null dönüşümün sonucu geçerli bir sayı değeri 0'dır ve tanımsız dönüşümün sonucu NaN'dir.
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
İki tür farklıdır, null türü nesnedir ve tanımsız türü tanımsızdır.
console.log(typeof null); //object
console.log(typeof undefined); //undefined
null ve undefined karşılaştır
Null ve undefined arasında ayrım yapmak için sadece eşleşme kullanılabilir.Uygunluk içinde, iki türün eşit olup olmadığını kesin olarak karşılaştıracaktır.
console.log(Boolean(null == undefined)); // true
console.log(Boolean(null === undefined)); // false
sonuç olarak
Yukarıdaki karşılaştırmadan sonra, bu iki türü net bir şekilde anlıyoruz. Genellikle, bir değişkenin kod yazarken geçerli bir değeri olup olmadığına karar verdiğimizde, ikisi arasında ayrım yapmamıza gerek kalmaz, onu sadece bir Boole türü olarak kullanırız. Ancak mülkün var olup olmadığına karar vermemiz gerektiğinde, tanımsız olduğuna karar vermek için türü kesinlikle kullanmalıyız. Son olarak, sayısal bir değer iletirsek, önce bir yargıya varmalıyız ve doğrudan sayısal bir türe dönüştürülemeyiz, aksi takdirde null, anormal sonuçlar almamıza neden olur ve tanımsız, geçersiz sonuç NaN'yi doğrudan hesaplar.