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ş:
Neden C rand() büyüklükte aynı sırada ...
Neden !!1=="1" eşit ve doğru...
() pow biri tarafından burada gibi gör...
Nasıl sync CoreData bir DİNLENME uyums...
Aynı zamanda Twitter Bootstrap ve jQue...