null undefined fark sorusunun en kısa yanıtı şudur: null bilerek atanmış "değer yok" anlamına gelir, undefined ise henüz bir değer atanmamış olduğunu gösterir. JavaScript'te bir değişken tanımlanıp değer verilmezse otomatik olarak undefined olur. null ise geliştirici tarafından açıkça "bu alan boş" demek için yazılır. Yani undefined motorun verdiği varsayılan durumdur, null programcının bilinçli seçimidir. typeof ile kontrol ettiğinizde null undefined fark bir tuhaflık ortaya çıkar: typeof null "object" döner, bu JavaScript'in tarihsel bir hatasıdır. typeof undefined ise beklendiği gibi "undefined" döner. Bu yüzden null kontrolü için === null kullanmak daha güvenlidir. İki değer == operatörüyle karşılaştırıldığında true döner (loose equality), ancak === ile karşılaştırıldığında false döner. Bu durum null undefined fark ayrımını pratikte önemli kılar; bir fonksiyonun "hiç çağrılmadı mı, yoksa boş mu döndürdü" ayrımını yapmak istediğinizde strict equality şarttır. Kullanım önerisi: bir nesne özelliğini ya da fonksiyon dönüş değerini kasıtlı olarak boş bırakmak istediğinizde null atayın. Başlatılmamış değişkenlere veya "henüz yok" durumuna undefined bırakın, elle null yazmayın. Bu ayrıma tutarlı uymak, kodun okunmasını kolaylaştırır.