JavaScript’te Karşılaştırma ve Mantıksal Operatörler

Tayyip Bölük Mayıs 3, 2025 Javascript
JavaScript'te Karşılaştırma ve Mantıksal Operatörler

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

  1. == ile === arasındaki fark önemlidir. == operatörü tip dönüşümü yaparken === yapmaz. Bu nedenle === kullanmak daha güvenlidir.
  2. Mantıksal operatörlerde, && ile bağlanan tüm koşulların doğru olması gerekir. Bir tanesi bile yanlışsa sonuç false olur.
  3. || operatörü daha esnektir, koşullardan biri bile doğruysa işlem gerçekleşir.
  4. ! operatörü, bool değerlerin tersini döndürür. !true ifadesi false, !false ifadesi true döner.
  5. String ve sayılar karşılaştırılırken dikkatli olun. "5" == 5 true olabilir, ama "5" === 5 false olacaktır.
  6. Koşulları fazla karmaşık hale getirmek kodun okunabilirliğini düşürebilir. Kodunuzu bölerek yazmak daha sağlıklıdır.
  7. 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.

  1. == 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.

  2. != 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.

  3. && 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.

  4. ! operatörü ne işe yarar?

    ! (değil operatörü), bir koşulun tersini alır.

  5. "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.

  6. undefined ile null eşit midir?

    undefined == nulltrue (tip dönüşümüne izin verilir)
    undefined === nullfalse (tipler farklıdır)

  7. true && "Merhaba" ifadesinin sonucu nedir?

    JavaScript’te && operatörü, ilk “false” olmayan değeri döner.
    Bu örnekte: true && "Merhaba""Merhaba"

  8. 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.
    Yani user değişkeni doluysa koşul çalışır.

Kaynak w3schools

Etiketler: javascript operatörler
Paylaş:
Tayyip Bölük

Merhaba! Ben Tayyip Bölük, yazılım geliştirme alanında uzmanlaşmış bir geliştiriciyim. Teknoloji ve yazılım dünyasına olan ilgim, beni bu blogu oluşturmaya yönlendirdi. Amacım, yazılım geliştirme sürecindeki deneyimlerimi, öğrendiklerimi ve sektördeki yenilikleri okuyucularımla paylaşmak. Yazılım geliştirme sürecindeki yenilikçi yaklaşımlar, uygulama geliştirme ipuçları ve teknoloji trendleri üzerine içerikler üretiyorum. Blogumda ayrıca kendi projelerimden ve sektördeki ilham verici hikayelerden de bahsediyorum. Bu blog, hem yazılım meraklıları hem de sektöre adım atmak isteyenler için bir bilgi ve ilham kaynağı olmayı hedefliyor.

0 Yorum

Henüz yorum yapılmamış. İlk yorumu siz yapabilirsiniz!

Yorum Yap

Bir Yorum Yazın

E-posta adresiniz paylaşılmayacak. Gerekli alanlar * ile işaretlenmiştir.