JavaScript’te Doğru ve Yanlış Değerler Nasıl Çalışır?

0
114

Doğru ve yanlış değerler, JavaScript geliştiricilerinin anlaması için iki önemli kavramdır. Bu öğreticide, JavaScript’teki doğru ve yanlış değerlerin ne olduğunu ve nasıl çalıştıklarını öğreneceksiniz. Ayrıca Boolean() yapıcısı ve NOT NOT operatörü ile değerleri Boolean’a nasıl dönüştüreceğinizi ve neden yeni Boolean’dan kaçınmayı öğreneceksiniz.

Booleans, doğru, yanlış ve ötesi

Muhtemelen zaten bildiğiniz gibi Boolean, true ve false, JavaScript’te bulunan ilkel veri türlerinden biridir. Daha sonra diziler, sayılar, BigInt, null, undefined ve semboller gibi diğer ilkel değerler vardır. Bunların dışında nesneler var. Nesneler ayrıca dizileri de içerir. Ancak bundan daha fazlası var.

Tüm bu ilkel veri türleri ayrıca Boole temsiline sahiptir. Bunun anlamı, JavaScript’in bu veri türlerinin her birini, değerlerini alıp Boolean olarak değerlendirebilmesidir. JavaScript, değerlerini doğru veya yanlış olarak Boolean’a “dönüştürebilir”. Hangi Boolean olacağı, birlikte çalıştığınız veri türüne bağlıdır.

Boolean, true ve false olmak üzere yalnızca iki olası değere sahiptir. Bu, JavaScript’in değerleri nasıl “dönüştürebileceği” konusunda da bir sınır oluşturur. JavaScript, değerleri ya ya da yanlış olarak “dönüştürdüğünde”, belirli kurallar kümesini kullanır. Bu kurallar dilin özünde uygulanır ve değişmesi pek olası değildir. Onlara bir göz atalım.

Doğru ve yanlış değerler

JavaScript’te şu anda yedi ilkel veri türü vardır. Bunlar sayılar, diziler, Boolean, BigInt, null, undefined ve sembollerdir. Gerçek değerden bağımsız olarak, bazı veri türlerinin değerleri her zaman doğrudur ve diğerlerinin değerleri her zaman yanlıştır. Bu, diğer değerler için mutlaka doğru değildir.

Değerleri bir senaryoda doğru, diğerinde yanlış olabilen veri türleri de vardır. Farkı yaratan ve doğru/yanlış durumunu belirleyen gerçek değerdir.

yanlış değerler

Falsy değerleri, JavaScript onları Boolean alternatiflerine “dönüştürdüğünde” false olarak değerlendirilen değerlerdir. İlk olarak, her durumda yanlış olan değerlere bir göz atalım. Başka bir deyişle, gerçek değerlerinin ne olduğu önemli değil. Bu değerler null, undefined ve NaN’dir. Bu üçü her zaman sahte olacaktır.

Bu ikisinin yanı sıra, diğer yanlış değerler Boolean false, sayı 0, BigInt 0n, boş tek tırnaklı dize (”), ters tırnaklı boş dize (“) ve boş çift tırnaklı dizedir (“”). Bu değerler değişmediği sürece yanlış olacaktır.

// Falsy değerler false null undefined NaN 0 0n // BigInt 0 “” // boş tek tırnaklı dize ” // ters tırnaklı boş dize “ // boş çift tırnaklı dize

Gerçek değerler

Diğer tarafta gerçeğe uygun değerler var. Bu değerler, JavaScript onları Boolean’a “dönüştürdüğünde” doğru olarak değerlendirilecektir. Birincisi, durum ne olursa olsun her zaman doğru olacak beş değer vardır. Bunlar diziler (boş, boş olmayan), nesneler (boş, boş olmayan), new Date() ve Infinity, hem pozitif hem de negatif.

Doğru olacak değerler ayrıca Boolean doğru, pozitif ve negatif sayılar (tamsayılar ve kayan sayılar) ve sıfır olmayan BigInt’tir. Truthy ayrıca tek tırnak, çift tırnak ve ters tik ile oluşturulmuş boş olmayan dizeler olacaktır. Doğruluk değeri de bir dize (“0”) olarak 0 olacaktır. Bunun nedeni, artık 0 değil, boş olmayan dize olmasıdır.

// Doğruluk değerleri true
[] // Dizi, boş ve boş olmayan {} // Nesne, boş ve boş olmayan yeni Date() 42 -42 3.14 -3.14 12n // Sıfır olmayan BigInt Infinity // Sayı sonsuz pozitif -Sonsuz // Sayı sonsuz negatif “0” // 0 bir dizge olarak ‘boş olmayan tek tırnaklı dizgi’ ‘ters tikli boş olmayan dizge’ “boş olmayan çift tırnaklı dizgi”

Boole bağlamı hakkında bir not

Bildiğiniz gibi JavaScript, değerleri Boolean’a dönüştürebilir. Bu otomatik olarak gerçekleşir, ancak yalnızca belirli bir durumda. Bu duruma Boole bağlamı denir. Boole bağlamı, temel olarak, JavaScript’in işi yapabilmek için bir değerin “Boolean” değerini bilmesi gerektiği anlamına gelir.

Bu duruma basit bir örnek, if…else ifadesini kullanmanızdır. if…else ifadesinde bir değer kullandığınızda ve yalnızca bu değer, JavaScript’in bu değeri Boolean’a dönüştürmesi gerekir. Başka seçeneği yoktur çünkü if…else koşulu bir Boolean olmalıdır. Eh, bu değer zaten bir Boole değilse.

// If…else ifadesi if (/* Boolean bağlam */) { /* Yürütülecek bazı kodlar */ } if (0) { console.log(‘truthy’) } else { console.log(‘falsy’ ) } // Çıktı: // ‘falsy’ if (0n) { console.log(‘trruthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘falsy’ if (null) { console.log(‘trruthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘falsy’ if (undefined) { console.log(‘trruthy’) } else { console.log(‘ falsy’) } // Çıktı: // ‘falsy’ if (-59) { console.log(‘truthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘truthy’ if ( ‘merhaba’) { console.log(‘truthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘truthy’ if ({}) { console.log(‘truthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘trruthy’ if ([]) { console.log(‘truthy’) } else { console.log(‘falsy’) } // Çıktı: // ‘truthy’

Değerleri Boolean’a dönüştürme

JavaScript, Boole bağlamında değerleri otomatik olarak Boolean’a dönüştürür. Bununla birlikte, istediğiniz zaman değerleri kendiniz de Boolean’a dönüştürebilirsiniz. Bunu yapmanın en az iki yolu vardır.

Boole yapıcısı

Bunu yapmanın ilk yolu Boolean() yapıcısını kullanmaktır. Bu, yeni Boolean nesnesi oluşturan bir nesne oluşturucudur. Bu nesne, bir Boole değeri için bir sarmalayıcıdır. Bu önemli değil. Önemli olan Boolean() yapıcısının bir değeri parametre olarak kabul etmesidir. Bu değeri alır ve Boole olarak döndürür.

Boolean(55) // Çıktı: // true Boolean(8n) // Çıktı: // true Boolean(-Infinity) // Çıktı: // true Boolean(”) // Çıktı: // false Boolean(‘Merhaba !’) // Çıktı: // true Boolean([‘James’, ‘Joyce’]) // Çıktı: // true Boolean({ name: ‘James’ }) // Çıktı: // true Boolean(tanımsız) // Çıktı: // false Boolean(null) // Çıktı: // false

DEĞİL veya çift patlama operatörü

Değerleri Boolean’a dönüştürmek için ikinci seçeneğiniz “NOT NOT” operatörünü kullanmaktır. Bu operatör aynı zamanda “double bang” operatörü olarak da adlandırılır. “Bang” olarak da adlandırılan mantıksal NOT operatörünü (!) zaten biliyor olabilirsiniz. Bu operatör, onu bir Boolean değerinin önüne yerleştirirseniz, onu tersine çevirecektir.

Örneğin, !true size false, !false ise true değerini verecektir. Güzel ve basit. Bu operatörü iki kez kullandığınızda, değeri tersine çevirmez. Yapacağı şey, bu değeri Boolean’a dönüştürmektir. Boolean ile kullanırsanız, hiçbir şey yapmaz. Herhangi bir değeri Boolean’a dönüştürmenin çok basit ve hızlı bir yolu.

console.log(!!true) // Çıktı: // true console.log(!!0) // Çıktı: // false console.log(!!15) // Çıktı: // true console.log(! !”) // Çıktı: // false console.log(!!’Code’) // Çıktı: // true console.log(!!3.14) // Çıktı: // true console.log(!!undefined ) // Çıktı: // false console.log(!!null) // Çıktı: // false console.log(!!{}) // Çıktı: // true console.log(!![]) // Çıktı: // doğru

hangisini kullanmalı

Hem NOT NOT hem de Boolean() yapıcısı işi halledecek ve size aynı sonucu verecektir. Herhangi bir performans farkı muhtemelen önemsiz olacaktır. Yani, bu temelde doğru ya da yanlış bir seçim olmadığı anlamına gelir. Tercih ettiğinizi ve sizin için daha okunabilir olanı kullanmalısınız. Boolean()’ı seviyorsanız kullanın. Eğer !! bunu kullan.

Yeni Boole’den kaçının

Şimdi yapman gereken bir şey var. Boolean yapıcısı ve ayrıca yeni Boolean nesnesi var. Yeni Boolean, Boolean için bir nesne türüdür. Boolean nesnesinin bir örneğidir. New Number, new String vb. gibi diğer nesne türlerinin yanı sıra onu kullanmaktan kaçınmalısınız.

Bunun nedeni, ilkeller (ilkel veri türleri) ucuzken nesnelerin pahalı olmasıdır. İlkeller değişmezdir ve referansları paylaşabilir. Ayrıca her bir örnek için herhangi bir durum tutmaları gerekmez. Bu nesneler için geçerli değildir. Nesnelerin kendi benzersiz bellek adresleri vardır ve kendi benzersiz dahili durumlarını tutabilirler.

Tüm bunlar, JavaScript’in nesneler oluşturmak ve bunlarla çalışmak için ilkellerden daha fazla kaynağa ihtiyacı olduğu anlamına gelir. Yeni Boolean gibi nesne türünü kullandığınızda, basit bir ilkel, doğru veya yanlış oluşturmazsınız. Tamamen yeni Boolean() nesnesi yaratıyorsunuz. Biraz bellekten tasarruf edin ve Boole yapıcısını kullanın veya DEĞİL (!!).

Boolean ile dizi dizilerini filtreleme

Boolean yapıcısı, bir diziden boş dizeleri kaldırmanıza da yardımcı olabilir. Diyelim ki dizeleri olan bir diziniz var ve tüm boş dizeleri kaldırmak istiyorsunuz. Yapabileceğiniz bir şey, filter() yöntemini kullanmak ve her bir dizenin uzunluğunu kontrol etmektir. Uzunluk 0 ise, bu dizeyi atabilirsiniz.

Yapabileceğiniz başka bir şey de Boolean yapıcısını kullanmaktır. filter() yöntemini kullanabilir ve Boolean yapıcısını geri çağırma işlevi olarak iletebilirsiniz. Sonuç, yalnızca boş olmayan dizeleri olan bir dizi olacaktır. Bunun işe yaramasının nedeni basit. filter() yöntemi için geri çağırma işlevi her zaman Boole değerini döndürür.

Boolean() yapıcısına geçtiğinizde, filtre yöntemi dizideki her bir öğeyi alacak ve onu Boolean’a dönüştürecektir. Artık bildiğiniz gibi, boş olmayan dizeler doğrudur. Bu nedenle, 0 olmayan uzunluktaki her dize true değerini döndürür. Boş dizeler sahtedir. Bu nedenle, her boş dize false döndürür.

filter() yöntemi, geri çağırma işlevinin false döndürdüğü tüm öğeleri atar. Bu, bu durumda dizideki tüm boş dizeleri atacağı anlamına gelir. Bu dizeler sahte olarak değerlendirilecek ve geri arama işlevinin testini geçmeyecektir.

// Boş ve boş olmayan dizelerle bir dizi oluşturun: const arr = [ ‘Java’, ‘coffee’, ”, ‘team’, ”, ”, ‘tea’ ]

// Temiz kopya oluşturmak için Boolean yapıcısını kullanın: let arrClean = arr.filter(Boolean) // Temiz diziyi günlüğe kaydet: console.log(arrClean) // Çıktı: // [ ‘Java’, ‘coffee’, ‘team’, ‘tea’ ]

Sonuç: JavaScript’te doğru ve yanlış değerler nasıl çalışır?

Doğru ve yanlış değerler biraz kafa karıştırıcı olabilir. Aynısı değerleri boolean’a dönüştürmek için de söylenebilir. Yine de bu kavramlar önemlidir ve her JavaScript geliştiricisi bunları anlamalıdır. Umarım bu eğitim, JavaScript’teki doğru ve yanlış değerlerin ne olduğunu, nasıl çalıştıklarını ve nasıl kullanılacağını öğrenmenize yardımcı olmuştur.

Bu makaleyi beğendiyseniz, gelecekteki gönderileri kaçırmamak için lütfen abone olun.

Bana ve bu bloga destek olmak isterseniz patron olabilirsiniz ya da bana bir kahve ısmarlayabilirsiniz 🙂

patreon Patron olun PayPal simgesi Paypal ile bağış yapın

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz