SORU
20 Ocak 2009, Salı


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
21 Ocak 2009, ÇARŞAMBA


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:

  1. 'var x; atama yok, x tanımsız tutar ama; . bildirdiğinizde
  2. fonksiyon bildirir daha az sayıda bağımsız değişken alır;
  3. ne zaman sen var olmayan nesnenin bir özelliğine erişmek.
< . 'null' biz de (1) için çalışacaktı ve (2)*

*: 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • trickycharms

    trickycharms

    6 Aralık 2013