SORU
1 NİSAN 2010, PERŞEMBE


Nasıl JavaScript tanımsız veya boş bir değişken için kontrol etmek?

Sık sık JavaScript kodu aşağıdaki kod desen kullanıyoruz

if (typeof(some_variable) != 'undefined' && some_variable != null)
{
    // Do something with some_variable
}

Aynı etkiye sahip olduğunu kontrol daha az ayrıntılı bir yol var mı?

Bazılarına göre forum ve Edebiyatı sadece şunları söyleyerek aynı etkiye sahip olmalıdır.

if (some_variable)
{
    // Do something with some_variable
}

Ne yazık ki, Firebug some_variable tanımsız olduğunda çalışma zamanı hatası diye bir deyimi değerlendirir, ilk oysaki benim için gayet iyi bir model. Bu Kundakçı (istenmeyen) tek bir davranış ya da gerçekten bu iki yol arasında bir fark var mı?

CEVAP
1 NİSAN 2010, PERŞEMBE


İki durum arasında ayrım var

1) Tanımsızdeğişkenler'gibi'. foo Herhangi bir bağlam sattığınız dışında tanımsız bir değişken erişim eğer bir hata alırsınız.

  if(typeof someUndefVar == whatever) -- works
  if(someUndefVar) -- error  

Yani, değişkenler için bu sınıfa giren bir onay gerekir. Diğer tarafta, nadiren gerekli - genelliklebiliyorumeğer değişken tanımlı olup olmadığını.

2) Tanımlanmamışözellikleri, someExistingObj.someUndefProperty gibi. Tanımsız bir özelliğe bir hata ve "tanımsız", zaman boolean dönüştürülür, false döndürür. sadece verim yok Eğer umurunda olsaydı zaten bu yüzden, '0' ve 'yanlış', if(obj.undefProp) Tamam. Ortak bir dil bu gerçeğe dayanıyor

 value = obj.prop || defaultValue

demek ki Amerikalı "bir pervane var, bunu kullanın, aksi takdirde varsayılan".

Bazı insanlar bu davranış kafa karıştırıcı, zor bulur, hataları ve tavsiye bir sonuç yerine in operator kullanarak tartıştığını düşünün

 value = ('prop' in obj) ? obj.prop : defaultValue

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • vgeller1

    vgeller1

    22 Kasım 2009