JavaScript'te sayısal değeri Boolean'a dönüştürme

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ğru

Değer

sabit sayı = 100; !! sayı; // doğru Boolean (sayı); // doğru

Hayali 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ğru

Tı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ğru

Hı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; // boole

CJJ .: 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

Gelecekte, akıllı sistemleri ve robotları nasıl tasarlayacağız
önceki
Harvard Üniversitesi, Massachusetts Institute of Technology, IBM, Google, Microsoft 9 ücretsiz programlama kursu sağlar
Sonraki
Yapay zeka sinirbilimle buluştuğunda, iki hareketin birleşimi durdurulamaz!
Else anahtar kelimesine veda etme zamanı ...
Bugünün temel sesi | Xiaomi'nin 10. yıl dönümü Lei Jun: sayısız anı dün gibi görünüyor
Yapay zekanın davranışından kim sorumludur?
Vue.js 2020'de React'i devralacak mı?
Göz açıcı! Tıp ve otomotiv endüstrilerinde yapay zekanın 11 ilginç uygulaması
Python listelerini anlama konusunda uzmanlaşmak için bilmeniz gereken 9 şey, biliyor musunuz?
GRPC'yi ve sunum katmanı durum geçişi ile uzak prosedür çağrısı mimarisi arasındaki farkı anlayın
Genç programcıdan kıdemli programcıya nasıl başarılı bir şekilde terfi edilir?
Bugün Core Voice | Huawei Cloud, Dünyaya Ücretsiz Tıbbi Yapay Zeka Hizmetlerini Duyurdu
Küresel salgın grevleri, İsviçreli bilim adamları laboratuvarda koronavirüsü yeniden mi yaratıyor?
Python3.9'da sözlük birleştirme ve güncelleme, bir göz atın
To Top