null ve tanımsız

JavaScript, bir değerin olmadığını birden çok şekilde gösterir. Bu sayfa en yaygın iki yöntemi açıklar: null ve undefined veri türleri.

null anahtar kelimesi, kasıtlı olarak tanımlanmış bir değer eksikliğini temsil ediyor. null. ilkel bir değerdir, ancak typeof operatörü null işlevinin bir nesne olduğunu döndürür. Bu hata üzerinde düşünülmüştür ve bilinçli bir şekilde .

typeof null
> object

Bir değişkeni null olarak tanımlayabilirsiniz başka bir zamanda, kendisine atanan bir değeri yansıtması nokta veya açık bir şekilde eksik olan bir değer içerebilir. Ayrıca, null değerini silmek için mevcut bir referansa değer olarak ayarlayın.

undefined

undefined, değişkenlere atanan temel bir değerdir veya bir işlemin bu işlemin sonucunda ortaya çıkan anlamlı bir değer döndürmez. Örneğin, bu tür bir paylaşım için tarayıcının geliştirici konsolunda bir işlev görecek:

function myFunction() {}
> undefined

Bir işlev, return ifadesi olduğunda açıkça undefined değerini döndürür değer döndürmez.

(function() {
   
return;
}());
> undefined

null ile undefined karşılaştırması

undefined ve null işlevsel olarak örtüşse de amaçlanıyor. En açık şekilde, null bir değeri temsil eder kasıtlı olarak "boş" olarak tanımlanan ve undefined ise atanmış herhangi bir değerin eksik olduğunu temsil eder.

null ve undefined kısmen eşittir, ancak kesinlikle eşit değildir. Gevşek eşitlik operatörü, farklı türlerdeki işlenenleri boole'ye uygular değerleri, null ve undefined değerlerinin her ikisi de false olur. Katı eşitlik operatörü farklı veri türlerindeki işlenenleri eşit olmayan olarak kabul eder.

null == undefined
> true

null === undefined
> false

Ayrılmış null anahtar kelimesinin aksine undefined global nesne. Bu bir tasarımdı erken bir aşamada karar verilmesini sağlar ve eski tarayıcıların undefined öğesinin tamamen üzerine yaz. Modern tarayıcılarda, Global olmayan kapsamlarda tanımlayıcı olarak undefined ve kapsam dışı görülür. Hiçbir zaman undefined özelliğini tanımlayıcı olarak kullanmayın. Google beklenmedik davranışlara neden olabilir ve ürününüzün gelecekteki bakımını yapan kişilerin kafasını karıştırabilir. kod tabanınız içindir.

Öğrendiklerinizi sınayın

typeof null sonucu ne döndürür?

primitive
undefined
string
object