25 Temmuz 2016 Pazartesi

Javascript'de Boolean Nesnesi

Merhaba Webkolog Takipçileri!

Bugün JavaScript'in en sade ama aynı zamanda en kritik veri tiplerinden biri olan Boolean ve onunla ilişkili Boolean Nesnesi hakkında konuşacağız. Programlamada karar verme mekanizmalarının temelini oluşturan boolean değerler, her türlü koşullu ifadede ve akış kontrolünde karşımıza çıkar. Mantıksal operasyonlardan, bir durumun doğru mu yanlış mı olduğunu belirlemeye kadar, boolean'lar kodunuzun nasıl davranacağını yönetir. Hadi, bu ikili dünyayı biraz daha yakından tanıyalım!


Boolean Nedir ve Neden Önemlidir?

JavaScript'te bir boolean, sadece iki olası değere sahip bir veri tipidir: true (doğru) veya false (yanlış). Bu basit ikili yapı, programlarımızın dünyayı "evet" veya "hayır" gibi sorularla anlamasını ve buna göre hareket etmesini sağlar.

Boolean değerleri ve Boolean nesnesi, aşağıdaki gibi durumlarda kilit rol oynar:

  • Koşullu İfadeler: if, else if, else gibi yapılarla belirli bir koşulun sağlanıp sağlanmadığını kontrol etme.
  • Döngüler: while ve for döngülerinde döngünün devam edip etmeyeceğini belirleme.
  • Mantıksal Operasyonlar: && (VE), || (VEYA), ! (DEĞİL) gibi operatörlerle karmaşık mantıksal ifadeler oluşturma.
  • Değer Doğrulama: Bir değişkenin var olup olmadığını, boş olup olmadığını veya belirli bir koşulu sağlayıp sağlamadığını kontrol etme.

Boolean Değerler ve Boolean Nesnesi Arasındaki Fark

JavaScript'te boolean değerleri genellikle ilkel tipler olarak kullanılır:


    let isActive = true;
    let isAdmin = false;

    if (isActive) {
        console.log("Kullanıcı aktif.");
    }

Ancak, tıpkı String ve Number gibi, Boolean için de bir nesne karşılığı vardır: Boolean Nesnesi. Bunu new Boolean() yapıcı fonksiyonu ile oluştururuz.


    const sonucObjesi = new Boolean(true);
    console.log(typeof sonucObjesi); // object
    console.log(sonucObjesi); // [Boolean: true]

Önemli Not: Genellikle ilkel boolean değerleri (true ve false) kullanmanız önerilir. new Boolean() ile oluşturulan nesneler, beklenen davranışlardan sapmalara neden olabilir. Örneğin, bir Boolean nesnesi bir if koşulunda her zaman true olarak değerlendirilir, çünkü bir nesne her zaman "truthy" (doğru kabul edilen bir değer)dir, hatta değeri false olsa bile!


    const falseObjesi = new Boolean(false);
    if (falseObjesi) {
        console.log("Bu mesaj görünecektir, çünkü falseObjesi bir nesnedir ve truthy kabul edilir.");
    }

    const falsePrimitive = false;
    if (falsePrimitive) {
        console.log("Bu mesaj görünmez.");
    }

Bu nedenle, sadece ilkel true ve false değerlerini kullanmanız şiddetle tavsiye edilir. Boolean nesnesine genellikle doğrudan ihtiyacınız olmaz.


Boolean Nesnesinin Özellikleri

1. constructor Özelliği

Bir nesnenin hangi yapılandırıcı fonksiyon tarafından oluşturulduğunu gösterir. Boolean nesneleri için bu, Boolean fonksiyonudur.


    const flag = new Boolean(true);
    if (flag.constructor === Boolean) {
        console.log("Bu bir Boolean nesnesidir.");
    }
2. prototype Özelliği

Boolean nesnesinin prototipini temsil eder. Bu özellik, tüm Boolean nesneleri (veya ilkel boolean değerleri) tarafından paylaşılan metotları ve özellikleri tanımlamanıza olanak tanır. Genellikle doğrudan kullanmanız yerine, Boolean.prototype'a yeni metotlar ekleyerek özelleştirme yaparken kullanılır. Ancak bu tür bir özelleştirme genellikle tavsiye edilmez, çünkü built-in nesnelerin prototiplerini değiştirmek global sorunlara yol açabilir.


    // Örnek (genellikle kaçınılması önerilir): Boolean.prototype'a yeni bir metot ekleme
    Boolean.prototype.toggle = function() {
        return this.valueOf() ? false : true;
    };

    const myBool = true; // Primitive boolean
    console.log(myBool.toggle()); // false

    const myBoolObj = new Boolean(false); // Boolean nesnesi
    console.log(myBoolObj.toggle()); // true

Boolean Nesnesinin Metotları

1. toString() Metodu

Bir Boolean nesnesinin ilkel boolean değerini (true veya false) temsil eden bir string döndürür.


    const durum = new Boolean(true);
    console.log(durum.toString()); // "true"
    console.log(typeof durum.toString()); // string
2. valueOf() Metodu

Bir Boolean nesnesinin ilkel boolean değerini (true veya false) döndürür. Bu, bir Boolean nesnesini ilkel bir boolean değeri olarak kullanmanız gerektiğinde JavaScript tarafından dahili olarak çağrılır.


    const isReady = new Boolean(false);
    console.log(isReady.valueOf()); // false
    console.log(typeof isReady.valueOf()); // boolean

Yukarıdaki örnekte görüldüğü gibi, valueOf() metodu, nesnenin temsil ettiği gerçek boolean ilkel değerini almanızı sağlar.


Truthy ve Falsy Değerler

JavaScript'te boolean olmayan birçok değer, mantıksal bağlamda (if koşulları, && veya || operatörleri gibi) otomatik olarak bir boolean değere dönüştürülür. Bu değerlere truthy (doğru kabul edilen) ve falsy (yanlış kabul edilen) değerler denir.

Falsy Değerler (false olarak kabul edilenler):

  • false (kendisi)
  • 0 (sıfır sayısı)
  • -0 (negatif sıfır)
  • "" (boş string)
  • null
  • undefined
  • NaN (Not-a-Number)

Truthy Değerler (true olarak kabul edilenler):

Yukarıdaki falsy değerler dışındaki tüm değerler truthy kabul edilir. Buna boş diziler ([]), boş objeler ({}) ve hatta "0" gibi string'ler de dahildir.


    if ("Merhaba") {
        console.log("Bir string truthy'dir."); // Bu çalışır
    }

    if ([]) {
        console.log("Boş bir dizi truthy'dir."); // Bu çalışır
    }

    if (0) {
        console.log("Sıfır falsy'dir, bu çalışmaz.");
    } else {
        console.log("Sıfır falsy'dir."); // Bu çalışır
    }

Bir değeri açıkça boolean'a dönüştürmek için Boolean() fonksiyonunu veya iki adet "DEĞİL" operatörünü (!!) kullanabilirsiniz:


    console.log(Boolean(0));       // false
    console.log(Boolean(""));      // false
    console.log(Boolean("Hello")); // true
    console.log(Boolean({}));      // true

    console.log(!!0);       // false
    console.log(!!"");      // false
    console.log(!!"Hello"); // true
    console.log(!!{});      // true

Sonuç

Boolean değerler, JavaScript'in temel taşlarından biridir ve kodunuzun mantıksal akışını ve karar alma süreçlerini yönetir. Genellikle ilkel true ve false değerlerini kullanmanız, kodunuzu daha okunabilir ve öngörülebilir hale getirecektir. Boolean nesnesi teorik olarak var olsa da, pratikte kullanımı nadirdir ve bazı durumlarda kafa karışıklığına yol açabilir.

Truthy ve falsy değerler kavramını iyi anlamak, özellikle koşullu ifadeler yazarken size büyük esneklik sağlayacaktır. Bu ikili mantık dünyasında ne kadar ustalaşırsanız, o kadar sağlam ve akıllı JavaScript kodları yazabilirsiniz!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder