JavaScript'te bir değerin olmadığını belirtmek için çeşitli yöntemler vardır. Bu sayfada, en sık kullanılan iki yol açıklanmaktadır: null
ve undefined
veri türleri.
null
null
anahtar kelimesi, kasıtlı olarak tanımlanmış bir değer eksikliğini temsil eder. typeof
operatörü null
'in bir nesne olduğunu döndürse de null
basit bir değerdir.
Bu, JavaScript'in ilk sürümünden itibaren geçen ve web'de beklenen davranışı bozmamak için kasıtlı olarak ele alınmayan bir hatadır.
typeof null
> object
Bir değişkeni, komut dosyasının bir noktasında kendisine atanan bir değeri veya açıkça bulunmayan bir değeri yansıttığı beklentisiyle null
olarak tanımlayabilirsiniz. Önceki bir değeri temizlemek için mevcut bir referansa null
değerini de atayabilirsiniz.
undefined
undefined
, yeni beyan edilmiş değişkenlere veya anlamlı bir değer döndürmeyen bir işlemin sonuç değerine atanan temel bir değerdir. Örneğin, tarayıcının geliştirici konsolunda bir işlev bildirdiğinizde bu durum ortaya çıkabilir:
function myFunction() {}
> undefined
Bir işlev, return
ifadesi hiçbir değer döndürmediğinde açık bir şekilde undefined
değerini döndürür.
(function() {
return;
}());
> undefined
null
ile undefined
karşılaştırması
undefined
ve null
işlevleri çakışsa da amaçları farklıdır. En katı şekilde, null
kasıtlı olarak "boş" olarak tanımlanan bir değeri, undefined
ise atanmış herhangi bir değerin eksikliğini temsil eder.
null
ve undefined
genel olarak eşittir ancak kesinlikle eşit değildir.
Serbest eşitlik operatörü, farklı türlerdeki işlenenleri boole değerlerine zorlayarak hem null
hem de undefined
değerlerini false
yapar. Katı eşitlik operatörü, farklı veri türlerinin işlenenlerinin eşit olmadığını kabul eder.
null == undefined
> true
null === undefined
> false
null
ayrılmış anahtar kelimesinin aksine, undefined
global nesnenin bir özelliğidir. Bu, JavaScript'in geliştirilmesinin başlarında
alınan bir tasarım kararıydı ve eski tarayıcıların undefined
üzerine tamamen yazmasına izin verdi. Modern tarayıcılarda, global olmayan kapsamlarda tanımlayıcı olarak undefined
kullanılabilir ve bu bildirim kapsamındaki değer geçersiz kılınabilir. Hiçbir zaman tanımlayıcı olarak undefined
kullanmayın. Beklenmedik davranışlara neden olabilir ve kod tabanınızın gelecekteki yöneticilerinin kafasını karıştırabilir.
Öğrendiklerinizi sınayın
typeof null
hangi cihazı iade eder?
object
undefined
primitive
string