Neden JavaScript orada bir `null` değer mi?
JavaScript, temelde demek iki değer vardır '' - undefined
null
. ben Yokum
Bir programcı bir şey undefined
, 3*,* 4 ** olma özelliği sırada olacak atanmamış bir özellik açıkça atanmış olması gerekir.
Bir keresinde undefined
ilkel bir değerdir ve null
bir nesne çünkü null
için bir ihtiyaç olduğunu düşündüm. Değil, olsa bile typeof null
verim 'object'
: Aslında ikisi de ilkel değerler - yani ikisi de undefined
ne null
döndürülebilir bir yapıcı işlevi, her ikisi de olacak dönüştürülür boş bir nesne (bir AT, bir hata için ilan başarısızlıkla kurucular).
Ayrıca iki boolean bağlamlarda false
değerlendirir. Aklıma gelen tek gerçek fark, bir sayısal bağlamlarda NaN
, 0
diğer değerlendirir.
Neden bu sadece bir özelliği ayarlanmış olup olmadığını bulmak için çalışırken veya yanlış null
kontrol programcılar kim karıştırdı varsa undefined
null
her ikisi de mi?
düzenleme:Bilmek istiyorum ne undefined
kullanmak yerine, ifade olamazdı ki eğer herkes gerekli null
kullanmak için makul bir örnek varsa.
edit2 3: Genel fikir undefined
anlamına gelir gibi görünüyor, bu yüzden bu özellik yok null
anlamına gelirken' 'özelliği var, ama değeri yok'.
Eğer JavaScript uygulamaları aslında bu davranış zorlamak istiyorsanız ben bununla yaşayabilirim ama undefined
kolayca mevcut özellikleri Bu Sözleşme kırmak için atanmış olabilir son derece geçerli ilkel bir değerdir. Eğer bir özelliği varsa emin olmak istiyorsanız, bu nedenle, in
operatör veya hasOwnProperty()
zaten kullanmak zorunda. undefined
null
için ayrı değerleri için pratik kullanımı nedir? yani bir kez daha:
Aslında 28* *istemiyorum hangi özelliklerin değerlerini artık kullanımda kullanmak istiyorum ama undefined
kullanın. null
yerine kullanmalıyım?
CEVAP
Soru "neden boş bir değeri var" - çoğu dilde bir çeşit null bir değeri vardır ve genellikle çok yararlı. kabul edilir JS gerçekten değil
Soru, "neden orada birtanımsızJS". değer Kullanıldığı önemli yerler:
- 'var x; atama yok, x tanımsız tutar ama; . bildirdiğinizde
- fonksiyon bildirir daha az sayıda bağımsız değişken alır;
- ne zaman sen var olmayan nesnenin bir özelliğine erişmek.
*: aynı zamanda (2) bir istisna atmak gerekir, ama sonra/bağımsız değişken için varsayılan, daha açık, daha iyi bir mekanizma gerekecek söyleyebiliriz.
Ancak JavaScript yoktu aslında istisnalar var, ya da herhangi bir şekilde sor bir nesne vardı Bir üye altında belli bir isim tek yolu (ve bazen hala) üyesi ve görmek ne olsun. Şu an zaten iyi bir üye olmak istiyorum diye bir amacı vardı, bant, farklı bir değer gerekli. null verildi 'Çünkü, senin de dediğin gibi sorunlu ve başka büyük JavaScript 'özelliği' asla kurtulmak mümkün olacak. tanımsız var
Ben silmek istemiyorum hangi özelliklerin değerlerini artık kullanımda kullanmak istiyorum ama aslında tanımsız kullanın. Null yerine kullanmalıyım?
Evet. 'Tanımsız' diğer diller bir istisna değil. at zaman sinyalizasyon için özel bir değer olarak tutmak
<'boş bir şey', 'bir hata verebilir. null ayarı genellikle daha iyi, bazı IE DOM arayüzleri hariç^. p Bu durumda, boş bir dize ayarını sık sık eğilimindedir.
Neden Dönüştürmek.Olabilirdi(null) nul...
Neden "" == [null] JavaScrip...
Neden' ◎ܫ◎ ve fonksiyonu t JavaSc...
Neden ve'boş ve tanımsız arasında...
Neden bir JavaScript değişken dolar iş...