JavaScript Tip Sistemi için 3 İpucu

Mehmet Ali Peker
Sorcial Development
4 min readApr 20, 2018

Yazının orijinali için: https://medium.com/dailyjs/3-tips-for-javascripts-type-system-2519ba57f954

JavaScript esnek olarak yazılan bir dildir, yani bilgilerin ne tür bir değişkende saklanacağını önceden belirtmek zorunda değilsiniz. JavaScript kendisine atadığınız bilgi türüne (ör. Dizge (string) değerlerini belirtmek için ‘’ veya “”) dayalı bir değişkeni otomatik olarak yazar. Java gibi diğer birçok dil, tam sayı (int) ondalıklı sayı (float), mantıksal (boolean) veya dizge (String) gibi bir değişken türünü bildirmeniz gerekir.

Bu hem bir lütuftur hem de bir lanettir.

Photo by Alex on Unsplash

JavaScript’in tür sistemi çok esneklik verirken, bir nesne (object) için bir tam sayı (int) eklemeye çalıştığınızda size seslenmek için katı tip tanımlamalarından yoksundur; bu da tür hatalarını ayıklamak için saatler harcamanızı önler.

#1 typeof

Bir değişkenin türünden şüpheye düştüğünüzde, typeof operatörünü kullanabilirsiniz:

typeof 1 //> “number”
typeof “1” //> “string”
typeof [1,2,3] //> “object”
typeof {name: “john”, country: “usa”} //> “object”

typeof true //> “boolean”
typeof (1 === 1) //> “boolean”
typeof undefined //> “undefined”
typeof null //> “object”
const f = () => 2
typeof f //> “function”

Temel Çıkarım: Değişken tipinden şüphelendiğinde, typeof kullan.

#2 Çift Eşittir VS Üç Eşittir

Çift eşittir (==) “tip zorlaması olmayan eşitlik” anlamına gelir. Üç eşitti kullandığınızda ise değerler aynı tür olmalıdırlar.

1 == “1” //> true
1 === “1” //> false
null == undefined //> true
null === undefined //> false
‘0’ == false //> true
‘0’ === false //> false
0 == false //> true
0 === false //> false, because they are of a different type

Unutmayın, tip eşitliği zorlamasıyla eşitsizliği kontrol etmek için !==(denk değilse) operatörünü kullanabilirsiniz.

1 != "1" //> false
1 !== "1" //> true

Temel Çıkarım: Her zaman === kullanın, çünkü bu kapsamlı bir kontroldür, sinir bozucu hatalardan kaçınmanıza yardımcı olur.

#3 Yanlışlıkların Kontrolü

“!” operatörünü kullanarak (“bang” operatörüde denir) yanlışlıkları kontrol edebilirsiniz, aşağıdakileri fark ederiz:

![] //> false
!42 //> false
!"hello world" //> false
!null //> true
!undefined //> true
!0 //> true
!"" //> true
!false //> true
Eğlenceli çünkü d0ru.

null, undefined, 0, “” ve false , ! operatörünü kullandığınızda true döndürür. Ne zaman ki ! operatörünü olan bir şeye eklediğimizde, mesela 42 sayısı yada “hello world” dizgesi gibi, o zaman false döndürür.

Bu null, undefined, 0, “” ve false değerlerinin varolmayanı yada false değerini temsil ettiğini gösterir ama aynı şekilde olmadığınıda gösterir. 0 bir sayıdır miktarın bulunmadığını gösterir. “” bir dizgedir ve dizgede maddenin/değerin bulunmadığını temsil eder. Ve son olarak, false bir boolean değer gerçek eksikliği temsil eder. Bu basit bir typeof örneğiyle doğrulanabilir:

typeof 0 //> "number"
typeof "" //> "string"
typeof false //> "boolean"

undefined ve null daha zordur. Aşağıdaki örnekte gösterildiği gibi, bunlar farklı türlerdir, aynı değere sahiptir, ancak=== (denklik) karşılaştırmasında başarısız olurlar:

typeof undefined //> “undefined”
typeof null //> “object”
undefined == null //> true
undefined === null //> false

Çünkü null bir nesne, ona sayı ekleyebiliriz. Ancakundefined ise bir sayı eklediğimizde NaN (Not a Number / Sayı değil) değerini verir.

null + //> 1
undefined + 1 //> NaN

Bir null değere sayı eklemek bazen hoş bir kısayol gibi görünebilir ama yapma!

null bir nesne olsa da ona bir sayı eklediğinizde bir sayı alırsınız. Ama ona başka şeyler eklediğinizde, size saçma sapan dizgeler verir:

null + [1,2,3]//> "null1,2,3"
null + ["hello", "world"] //> "nullhello,world"
null + {0: "hello", 1: "world"} //> "null[object Object]"

Temel Çıkarımlar:

  • Doğruluğu kontrol ederken dikkatli olmalısınız. === operatörünü kullan potansiyel olarak false olabilecek değerleri kontrol ederken, örneğin, if(foo === undefined || foo === null) ... — ki bu oldukça sıkıcı olabilir.
  • null ‘a bir şeyler ekleme!
  • Yanlışlığı kontrol etmek için en iyi yol ise ! operatörünü kullanarak tüm yanlış olabilecek değerleri kontrol etmektir. , Yani, null, undefined, 0, “” ve false için bir operatör.

Okuduğunuz için teşekkürler!

Eğer bu makaleyi yardımcı bulduysanız, lütfen JavaScript üzerine diğer makalelere ve eğitimlere göz atınız:

--

--

Mehmet Ali Peker
Sorcial Development

Co-Founder at T-Fashion / Fashion AI & Trend Forecasting / Web3 / NFTs