JavaScript'te null ve undefined arasındaki fark

Referans

JavaScript

Boş 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.