Tam metin 1396 kelime ve beklenen öğrenme süresi 7 dakikadır
Kaynak: unsplash
JavaScript'te sayısal değeri Boolean'a nasıl dönüştürebilirim? Bu makale bunu halletmenize yardımcı olacaktır! Aşağı bak ~
Dize
conststring = 'string'; !! string; // true Boolean (dizge); // doğruDeğer
sabit sayı = 100; !! sayı; // doğru Boolean (sayı); // doğruHayali değer
JavaScript'te 6 yapay değer vardır. Bu dizelerden herhangi birini Boolean'a dönüştürürseniz, yanlış olur.
yanlış Tanımsız boş NaN 0 "" (boş dize)Hayali bir değer olmayan her şey, doğruya dönüştürülecektir.
Misal
Kukla değerin uygulanması:
!! false; // false !! undefined; // yanlış !! null; // yanlış !! NaN; // yanlış !! 0; // yanlış !!''; // yanlışBoole bağlamında sanal değerin uygulanması:
Boolean (yanlış); // yanlış Boolean (tanımsız); // yanlış Boolean (null); // yanlış Boolean (NaN); // yanlış Boolean (0); // yanlış Boolean (''); // yanlış"Yanlış" a dikkat edin
constvalue = 'yanlış'; !! değer; // doğru Boolean (değer); // doğruTırnak işaretleri arasında "yanlış" yazılması gerektiğini unutmayın. Hayali bir değer olmasına rağmen, aslında bir dizedir. Çoğu insan burada mahsur kalmayacak, ancak yine de her zaman tetikte olmaları gerekiyor.
Kaynak: digilentin
Kod nasıl değiştirilir
Her şeyden önce! Değeri Boolean'a zorlayın ve olumsuzlayın. Bağlamda ,! Değer, boş bir değere geri dönecektir. Bu nedenle, değeri gerçek değere geri yüklemek için işleme başka bir "!" Koyun, böylece burada iki tane görünür! .
const value = 'string';! değer; // yanlış !! değer; // doğruHız testi
boole vs !!
Öyle görünüyor !! ama test hızı Boolean'dan daha hızlı.
Kaynak: unsplash
Bazı insanlar daha açık olduğu için Boolean'ı tercih eder. Ancak, KyleSimpson "Bilmediğiniz JavaScript" te her ikisinin de açık olduğundan bahsetmiştir.
// daha iyi (açıkça çalışır): Eğer bir) { } // ayrıca harika (açıkça çalışır): eğer (Boolean (a)) { }Burada standart bir cevap verilmeyecektir, ihtiyaçlarınıza göre seçim yapabilirsiniz. Kişisel gelişim projelerimde kullanmaya devam edeceğim !! Daha az yazı yazıyor ve bu grameri anlıyorum.
Aksine, bir takım olarak kabul edilirse yazar Boolean'ı seçebilir. Çoğu geliştirici bunu daha iyi anlayabilir. Hangisini seçerseniz seçin, en önemli şey kodu tutarlı tutmak, değiştirmeyin, birini seçip ona bağlı kalmaktır.
Bu daha çok bir tercih gibidir, kendinizi her iki kodu da anlama hakkından mahrum etmeyin.
NewBoolean'dan kaçının
Nesne türleri yerine ilkelleri kullanın
var str = 'str'; // Kaçın typeof new Boolean (str); // nesne // Tercihli typeof Boolean (str); // boole typeof !! str; // booleCJJ .: Yeni Boolean'ın bir boolean değil, Boolean değerinin bir örneği olduğunu belirtmekte fayda var. İlkel öğeler nispeten ucuzdur ve nesne türlerine tercih edilerek kullanılmalıdır.
CJJ .: new Boolean (str) nesne tipini döndürebilir. Boolean (str) yalnızca orijinal boole değerini döndürür. Sanırım Boolean (str) !! str'den daha hızlı. Çünkü bu sadece bir işlemdir, ancak tarayıcı, programcıların görebilmesi için optimizasyonları da uygulayabilir !! Parametreleri doğrudan orijinal boole değerlerine dönüştüreceklerini bilirler (aslında NOT () 'u art arda iki kez çalıştırmak yerine).
CJJ .: İlkel öğeler ucuzdur, değişmezler, bu nedenle örnek üzerinde herhangi bir durumu korumak zorunda kalmadan referansları paylaşabilirsiniz. Doğru ya da yanlış.
Ancak newBoolean (str) bir nesnedir. Kendi benzersiz depolama adresine sahiptir ve benzersiz dahili durumu kaydedebilir. Bu, değişmez tekli örneklere referansları depolayamayacağı anlamına gelir. Her yeni Boolean (str) somutlaştırma çalışması yepyeni bir Boolean () nesnesi oluşturacaktır.
Özel teşekkürler: CJJ
Resim kaynağı: sitepoint
Boş dizeleri kaldırmak için Boolean yapıcısını kullanın
CJJ .: Bu klasik bir örnek. Virgülle ayrılmış bir dize değerleri listesi alırsanız ve boş dizeleri filtrelemek istiyorsanız, Boolean yapıcısını Array.prototype.filter'e iletebilirsiniz; bu, sıfır uzunluklu dizeleri otomatik olarak kaldırır ve yalnızca birini geçerli tutar Dize dizisi.
var str = 'bazı, liste ,, değerler'; var arr = str.split (','); arr; // arr.filter (Boolean); //Özel teşekkürler: CJJ
Öğrendin mi
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun