null ve tanımsız

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