SORU
5 HAZİRAN 2012, Salı


Neden ",,," == Dizi(4) Javascript?

Senin çevirmen Boot konsol ve karşılaştırma ulaşmayı dene

> ",,," == Array(4)
True

Neden? Aklına beri ilk başta düşündüm",,, " '\0 neden olabilir, ama .' sonlandırıcı dilim, bir ile dört karakter dizisi

"..." == Dizi(4)

"". False Değerini Döndürür Yani... neden? Bu davranış, alt çizgiler ne ördek bazıları da özel bir bit Javascript yazarak, ama sadece meraklı olduğunu biliyorum. Zed Shaw mükemmel bir sunum bu işte btw panoda: http://vimeo.com/43380467

Teşekkürler

CEVAP
5 HAZİRAN 2012, Salı


İşlenen bir dize dönüştürülür sağ el ve Array(4) dize gösterimini çünkü ,,,:

> Array(4).toString()
  ",,,"

Eğer dizi işlevi yapıcı ve bir dizi geçmek kullanırsanız, bu sayı dizisinin uzunluğunu ayarlar. Dört boş dizinler ([,,,]) söyleyebilir ve diziler varsayılan dize gösterimine öğeleri virgülle ayrılmış listesi:

> ['a','b','c'].toString()
  "a,b,c"

Karşılaştırma nasıl çalışır bölümünde 11.9.3 of the specification açıklanmıştır. Göreceksiniz orada (x == y):

8. Yazarsanız(x. her bir Dize veya Sayı ve Tipi(yNesne,
karşılaştırma sonucu döndürürx== ToPrimitive(y).

(diziler JavaScript nesneleri)

ve eğer ToPrimitive yöntemi izlerseniz sonunda toString çağıran bulacaksınız.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006