Karşılaştırma tuzakları
=== ve == arasındaki farkı ve tip dönüşümü tuzaklarını öğrenirsin.
Katı eşitlik === ve gevşek eşitlik ==
JavaScript'te iki eşitlik operatörü vardır. === katı eşitliktir: hem değeri hem de tipi karşılaştırır. == ise gevşek eşitliktir: tipleri eşlemek için tip dönüşümü (type coercion) yapar ve sürpriz sonuçlar üretebilir.
5 === 5 // true
5 === "5" // false (sayı vs dize)
5 == "5" // true (dize sayıya çevrilir)Modern JavaScript'te her zaman === kullanılması önerilir; bu, beklenmeyen dönüşümleri önler.
Tip dönüşümü tuzakları
== operatörü beklenmedik sonuçlar üretebilir. İşte yaygın tuzaklar:
0 == false // true
"" == false // true
null == undefined // true
"0" == false // trueBu durumlar kod okurken kafa karıştırır. === kullanırsan hiçbir dönüşüm olmaz ve karşılaştırma nettir: 0 === false false döner.
Uygulama Katı eşitlikle değer karşılaştır
userInput değişkeni bir dizedir. Sayı 5 ile katı eşitlikle (===) karşılaştır. Eşitse console.log ile 'Sayı 5' yaz, değilse 'Sayı 5 değil' yaz. if, else ve === kullan.
Örnek çözümü göster
let userInput = "5";
if (userInput === 5) {
console.log("Sayı 5");
} else {
console.log("Sayı 5 değil");
}
Kendini test et
-
"5" == 5 ifadesinin sonucu nedir?
- false
- true
- Hata fırlatır
- undefined döner
Cevabı göster
true — Doğru. == gevşek eşitliktir; dize '5' sayıya çevrilir ve 5 == 5 true olur.
-
Katı eşitlikle karşılaştır
let input = "5"; if (input ____ 5) { console.log("Eşit"); }Cevabı göster
let input = "5"; if (input === 5) { console.log("Eşit"); } -
Karşılaştırma operatörlerini eşleştir
- ===
- Katı eşitlik (tip + değer)
- ==
- Gevşek eşitlik (tip dönüşümlü)
- !==
- Katı eşitsizlik
- !=
- Gevşek eşitsizlik