
İçindekiler
Web geliştirme serüvenine yeni başlayan herkesin karşılaştığı ilk konulardan biri karşılaştırma operatörleri ve mantıksal operatörlerdir. JavaScript gibi programlama dillerinde bu operatörler, yazdığınız kodun belirli koşullara göre çalışmasını sağlar. Örneğin bir kullanıcı giriş yapmış mı, yaşı 18’den büyük mü, iki değer birbirine eşit mi gibi kontroller bu operatörler aracılığıyla yapılır. Bu yazıda, JavaScript’teki karşılaştırma ve mantıksal operatörleri detaylıca ele alacak, örneklerle konuyu somutlaştıracak ve sık yapılan hataları tartışacağız.
Amacımız hem temel bilgileri edinmenizi sağlamak hem de gerçek dünya senaryolarıyla kavramları pekiştirmenize yardımcı olmak. JavaScript öğrenenler için oldukça kritik olan bu konuyu adım adım inceleyelim.
Karşılaştırma Operatörleri (Comparison Operators)
Karşılaştırma operatörleri, iki değer arasında bir ilişki olup olmadığını kontrol eder ve sonucunda boolean (true/false) bir değer döner. Bu sayede koşul ifadeleri (if, while gibi) içinde bu operatörler kullanılarak program akışı kontrol edilir. JavaScript’te yaygın olarak kullanılan karşılaştırma operatörleri şunlardır:
1. Eşit mi? (==
)
Bu operatör, iki değerin eşitliğini kontrol ederken veri tiplerini dikkate almaz. Yani 5 == "5"
ifadesi true döner çünkü JavaScript burada tip dönüşümü yapar.
console.log(5 == '5'); // true
2. Hem Değer Hem Tip Eşit mi? (===
)
===
operatörü hem değerlerin hem de veri tiplerinin aynı olup olmadığını kontrol eder. Bu operatör daha güvenli bir karşılaştırma sağlar.
console.log(5 === '5'); // false
console.log(5 === 5); // true
3. Eşit Değil mi? (!=
)
!=
operatörü, iki değerin eşit olup olmadığını kontrol eder. Tip farklarını göz ardı eder.
console.log(5 != '5'); // false
4. Hem Değer Hem Tip Farklı mı? (!==
)
!==
operatörü, ya değerler ya da tipler farklıysa true döner. Güvenli karşılaştırma için sıklıkla kullanılır.
console.log(5 !== '5'); // true
5. Büyük mü? (>
)
Bir sayının diğerinden büyük olup olmadığını kontrol eder.
console.log(10 > 7); // true
6. Küçük mü? (<
)
console.log(3 < 8); // true
7. Büyük veya Eşit mi? (>=
)
console.log(10 >= 10); // true
8. Küçük veya Eşit mi? (<=
)
console.log(5 <= 6); // true
Karşılaştırma Operatörleri Kullanım Senaryosu
let yas = 20;
if (yas >= 18) {
console.log("Reşit");
} else {
console.log("Reşit değil");
}
Bu örnekte, kullanıcının yaşı 18 ve üzeriyse “Reşit” yazısı ekrana basılır. Aksi takdirde “Reşit değil” sonucu döner. Bu tür kontroller form doğrulamada, erişim kısıtlamalarında oldukça yaygındır.
Mantıksal Operatörler (Logical Operators)
Mantıksal operatörler, birden fazla karşılaştırma ifadesini bir araya getirerek daha karmaşık koşulları kontrol etmemizi sağlar. JavaScript’te üç temel mantıksal operatör bulunur:
1. VE (AND) Operatörü (&&
)
Her iki koşul da doğruysa sonuç true olur. Aksi halde false döner.
let yas = 25;
let üyelik = true;
if (yas > 18 && üyelik) {
console.log("Sisteme erişim sağlandı.");
}
2. VEYA (OR) Operatörü (||
)
İki koşuldan en az biri doğruysa sonuç true olur.
let puan = 50;
let bonus = true;
if (puan > 60 || bonus) {
console.log("Geçti");
}
3. DEĞİL (NOT) Operatörü (!
)
Koşulun tam tersini döner. Eğer ifade true ise false yapar, false ise true yapar.
let girisYaptiMi = false;
if (!girisYaptiMi) {
console.log("Giriş yapın");
}
Gerçek Hayattan Detaylı Senaryolar
Örnek 1: Yaş ve Cinsiyet Kontrolü
let yas = 22;
let cinsiyet = "kadın";
if (yas >= 18 && cinsiyet === "kadın") {
console.log("Ankete katılabilirsiniz.");
}
Bu senaryo özellikle anket ya da araştırma sistemlerinde kullanıcı filtrelemede işe yarar.
Örnek 2: Kullanıcı Giriş Koşulu
let kullaniciAdi = "admin";
let sifre = "1234";
if (kullaniciAdi === "admin" && sifre === "1234") {
console.log("Hoşgeldiniz");
} else {
console.log("Bilgiler yanlış");
}
Bu örnekte basit bir kullanıcı doğrulama sistemi görülmektedir.
Örnek 3: Geçme Notu Hesaplama
let notOrtalamasi = 58;
if (notOrtalamasi >= 50) {
console.log("Sınavdan geçti");
} else {
console.log("Sınavdan kaldı");
}
Bu tip kontroller eğitim yazılımlarında sıkça kullanılır.
Örnek 4: Karmaşık Koşul Kullanımı
let yas = 19;
let ehliyet = true;
let sağlıkRaporu = true;
if (yas >= 18 && ehliyet && sağlıkRaporu) {
console.log("Araba kiralayabilirsiniz");
} else {
console.log("Şartlar sağlanmıyor");
}
Gerçek dünyada bu tür çoklu koşulları kontrol etmek oldukça yaygındır.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
==
ile===
arasındaki fark önemlidir.==
operatörü tip dönüşümü yaparken===
yapmaz. Bu nedenle===
kullanmak daha güvenlidir.- Mantıksal operatörlerde,
&&
ile bağlanan tüm koşulların doğru olması gerekir. Bir tanesi bile yanlışsa sonuç false olur. ||
operatörü daha esnektir, koşullardan biri bile doğruysa işlem gerçekleşir.!
operatörü, bool değerlerin tersini döndürür.!true
ifadesi false,!false
ifadesi true döner.- String ve sayılar karşılaştırılırken dikkatli olun.
"5" == 5
true olabilir, ama"5" === 5
false olacaktır. - Koşulları fazla karmaşık hale getirmek kodun okunabilirliğini düşürebilir. Kodunuzu bölerek yazmak daha sağlıklıdır.
- Kullanıcıdan gelen verilerle doğrudan karşılaştırma yapmadan önce veri tiplerini temizlemek (parse etmek) güvenlik açısından önemlidir.
Sonuç ve Öneriler
Karşılaştırma operatörleri ve mantıksal operatörler, JavaScript’in temel yapı taşlarından biridir. Koşullara göre karar verme, kullanıcıdan alınan verileri işleme, erişim kontrolleri gibi pek çok alanda bu operatörleri kullanırız. Özellikle if, while, for gibi kontrol yapılarında bu operatörlerin doğru kullanımı oldukça önemlidir.
Bu konuda ustalaşmanın en iyi yolu bol bol pratik yapmaktır. Kendi senaryolarınızı yazın, değişken değerleriyle oynayarak çıktıları gözlemleyin. Hatalarla karşılaştığınızda mantığı analiz edin. Böylece sadece sözdizimini değil, işleyişi de anlayarak daha sağlam yazılımlar geliştirebilirsiniz.
Bir sonraki yazımızda bu koşulları daha ileri seviye yapılarla nasıl harmanlayabileceğimizi, örneğin switch-case
, ternary operator
, optional chaining
gibi gelişmiş konuları ele alacağız. Daha fazlası için “Javascript” kategorisine bakabilirsin.
-
==
ile===
arasındaki fark nedir?==
(eşitlik operatörü) sadece değerlerin eşitliğini kontrol eder ve gerekirse tip dönüşümü yapar.===
(sıkı eşitlik operatörü) ise hem değerin hem de tipin aynı olup olmadığını kontrol eder. -
!=
ile!==
arasındaki fark nedir?!=
eşit değil mi diye bakar ama tip dönüşümüne izin verir.!==
ise hem değer hem tip farklı mı diye kontrol eder. -
&&
ile||
arasındaki fark nedir?&&
(ve operatörü): Tüm koşullar doğruysa true döner.||
(veya operatörü): En az bir koşul doğruysa true döner. -
!
operatörü ne işe yarar?!
(değil operatörü), bir koşulun tersini alır. -
"5" > 3
gibi farklı tipler karşılaştırılabilir mi?Evet. JavaScript bu durumda
"5"
stringini otomatik olarak sayıya çevirerek karşılaştırma yapar. -
undefined
ilenull
eşit midir?undefined == null
→true
(tip dönüşümüne izin verilir)undefined === null
→false
(tipler farklıdır) -
true && "Merhaba"
ifadesinin sonucu nedir?JavaScript’te
&&
operatörü, ilk “false” olmayan değeri döner.
Bu örnekte:true && "Merhaba"
→"Merhaba"
-
if (user)
şeklindeki kontrol ne anlama gelir?JavaScript’te
if
koşulu içinde:null
,undefined
,0
,NaN
,""
,false
gibi değerler falsey kabul edilir.
Diğer tüm değerler truthy olarak değerlendirilir.
Yaniuser
değişkeni doluysa koşul çalışır.
Kaynak w3schools
Henüz yorum yapılmamış. İlk yorumu siz yapabilirsiniz!