JS'de, özel özelliklere sahip bir Boole döndürebilirsiniz. Örneğin. Modernizr video desteğini test ettiğinde döner true
veya geri döner false
Boolean (Bool, JS'deki birinci sınıf nesnedir) hangi formatların desteklendiğini belirleyen özelliklere sahiptir. İlk başta beni biraz şaşırttı ama sonra fikirden hoşlanmaya başladım ve neden oldukça sık kullanıldıklarını merak etmeye başladım?
Temelde bir şeyin doğru mu yanlış mı olduğunu bilmek istediğiniz tüm senaryolarla başa çıkmanın zarif bir yolu gibi gözükse de, özel bir dönüş nesnesi tanımlamak veya tanımlanmış bir geri arama işlevi kullanmadan tanımlayabileceğiniz bazı ek bilgilerle ilgilenebilirsiniz. daha fazla parametre kabul et. Bu şekilde, daha karmaşık verileri döndürme kapasitesinden ödün vermeden çok evrensel bir işlev imzasını saklarsınız.
Hayal edebileceğim buna karşı 3 argüman var:
- Herhangi bir arayüzün net olması ve aldatıcı olmaması için muhtemelen daha iyi olması biraz nadir / beklenmeyen bir durumdur.
- Bu, sert bir adam argümanı olabilir, ancak biraz uçtan küçük bir vaka olduğu için, bazı JS optimizer, uglifier, VM'de veya küçük bir temizleme dili belirtimi değişikliğinden sonra sessizce geri teptiğini hayal edebiliyorum.
- Aynısını yapmanın daha iyi - özlü, açık ve ortak - yolu vardır.
Öyleyse sorum, Boolean'ları ek özelliklerle kullanmaktan kaçınmak için güçlü nedenler var mı? Bir numara mı yoksa bir hediye mi?
Arsa bükülme uyarısı.
Yukarıda tam şanlı orijinal soru. Matthew Crumley ve senevoldsen'in her ikisinin de işaret ettiği gibi, sahte (sahte) bir öncül dayanmaktadır. İyi JS geleneğinde Modernizr'in yaptığı şey bir dil numarası ve kirli bir şeydir. Propsiyon eklemek için TRYING'den sonra bile yanlış kalacak olan ilkel bir bool olan JS'ye kaynar ve özel propsiyonlara sahip olan ancak bir nesne olmak her zaman harikulade olan bir Boole nesnesidir. Modernizr, ya boolean false ya da hakikaten bir Boolean nesnesi döndürür.
Asıl sorum hilenin farklı şekilde çalıştığını ve bu yüzden en popüler cevapların kodlama standartlarını (kusursuz biçimde geçerli) yönünü ele aldığını varsayıyordu. Ancak tüm hileyi en iyi şekilde sorgulayan cevapları en faydalı buluyorum (ve ayrıca yöntemi kullanmaya karşı nihai argümanları da) bu yüzden onlardan birini kabul ediyorum. Tüm katılımcılara teşekkürler!
null
desteklenmezse yeni dönebileceklerini ve eğer öyleyse bir dizi biçimin olabileceğini unutmayın . Bir liste JS'de truthy olarak kabul edilir ve null
sahtedir.