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

  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008