SORU
30 Mart 2011, ÇARŞAMBA


Boş diziler aynı zamanda doğru ve yanlış eşit gibi görünüyor

Boş diziler doğrudur ama aynı zamanda yanlış eşit değiller.

var arr = [];
console.log('Array:', arr);
if (arr) console.log("It's true!");
if (arr == false) console.log("It's false!");
if (arr && arr == false) console.log("...what??");

Çıkış:

Array: []
It's true!
It's false!
...what??

Bu örtülü dönüşüm eşitlik operatörü tarafından işletilen kaynaklanıyor sanırım.

Kimse perde arkasında neler olduğunu açıklayabilir mi?

CEVAP
30 Mart 2011, ÇARŞAMBA


burada farklı şeyler deniyorsun. if (arr) eğer nesne varsa (Dizi JS Nesne örneği) kontrol nesnesi olarak adlandırılan, ve doğru/yanlış değerini döndürür. if (arr == false) çağırdığınızda karşılaştırındeğerlerbu nesnenin ve false ilkel değer. DAHİLİ olarak, arr.toString() denir, boş bir dize verir "" (toString adlı Dizi döndürür Array.join()), ve boş bir dize değil bir falsy değerleri JavaScript.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • newreleaseblitz

    newreleasebl

    13 Ocak 2010
  • TheRightTire

    TheRightTire

    14 EKİM 2009