JS öğrenirken genelde null değerine boş değer denilip geçilir herhalde öğrenenin kafası karışmasın diye detaya girmiyor instructorlar fakat bu sefer undefined ile karıştırılabiliyor ve bunun ayrımını yapmak bir karmaşaya dönüşmeye başlıyor.
bu değerlerin typeof'una bakıldığında
typeof null // object
typeof undefined // undefined
halbuki null primitive value idi yani JS'de bir değer object değilse primitive'dir fakat primitive ama typeof'u object bu nasıl oluyor?
MDN dökümanına baktığımda konu bilgisayar bilimleriyle ilişkili. Bilgisayar bilimlerinde bir null değeri hafızada kasten boş bir adresi temsil eder ve bunun her dilde implementasyonu farklı. JS'deki implementasyonu ise null primitive value olarak belirlenmiş çünkü davranışı görünüşte ilkeldir.
Şimdi görünüşte ilkel derken primitive değerler immutable idi yani değiştirilemezler ve primitive değerlerin methodları da yoktur dolayısıyla aynı davranışı null değerinde de görmekteyiz.
Fakat bazı durumlarda null göründüğü kadar ilkel değil çünkü her obje(object) null değerinden türüyor bu nedenle olsa gerek kasten hafızada boş bir değeri gösteriyor ve yine bu nedenle typeof operatörü object'i return ediyor.
Kaynaklar