JavaScript'te, temelde 'Ben yokum' yazan iki değer vardır - undefinedve null.
Bir programcı herhangi bir numara olabilir atanmamış olan A özellik undefinedolmak için bir özellik için, ama sırayla null, nullaçıkça kendisine atanmalıdır.
Bir keresinde buna ihtiyaç olduğunu düşünmüştüm nullçünkü undefinedilkel bir değer ve nullbir nesnedir. Hatta eğer değil typeof nullverecektir 'object'- vasıtalar, Aslında, her ikisi de ilkel değerler şunlardır: undefinedveya nullher ikisi de boş nesne dönüştürülebilir gibi (bir kurucu içinde, açığa başarısızlığa bir hata oluşturması sahiptir), bir yapıcı işlevi döndürülebilir.
Ayrıca ikisi de falseboole bağlamlarında değerlendirir . Aklıma gelen tek gerçek fark, birinin sayısal bağlamlarda NaN, diğerinin değerlendirmesidir 0.
Öyleyse neden her ikisi de var undefinedve nullbu, nullbir özelliğin ayarlanıp ayarlanmadığını bulmaya çalışırken yanlış bir şekilde kontrol eden programcıların kafasını karıştırıyorsa ?
Bilmek istediğim şey, kullanılması gereken ve bunun yerine nullkullanılarak ifade edilemeyen makul bir örneğe sahip olup olmadığıdır undefined.
Dolayısıyla, genel fikir birliği undefined, 'böyle bir mülkiyet yok' nullanlamına gelirken , 'mülk var, ancak değeri yok' anlamına geliyor gibi görünüyor .
JavaScript uygulamaları bu davranışı gerçekten zorlasaydı undefined, ancak tamamen geçerli bir ilkel değer olsaydı, bununla yaşayabilirim, bu nedenle bu sözleşmeyi bozmak için mevcut mülklere kolayca atanabilir. Bu nedenle, bir özelliğin var olduğundan emin olmak istiyorsanız, inoperatörü veya hasOwnProperty()yine de kullanmanız gerekir . Yani bir kez daha: için ayrı değerler için pratik kullanım nedir undefinedve null?
Aslında undefinedartık kullanımda olmayan ancak istemediğim özelliklerin değerlerini geri almak istediğimde kullanıyorum delete. Onun nullyerine kullanmalı mıyım ?
In JavaScript, there are two values which basically say 'I don't exist' - undefined and null.Hayır, sadece bunu undefinedsöylüyor.
undefined.