Temel Matematiksel İşlemler (Ama Bu Sefer Gerçekten Temel… ve Eğlenceli)
JavaScript’te aritmetik işlemler:
- Küçük görünür
- Basit sanılır
- Ama yanlış kullanıldığında uygulamanın altını oyar
Sepet toplamı, skor hesabı, sayaç, animasyon süresi, oyun mekaniği, finans hesapları…
Hepsinin mutfağında aritmetik işlemler kaynar 🍳
Hadi mutfağa girelim.
➕ Toplama İşlemi (+)
(JavaScript’in En İki Yüzlü Operatörü)
Normal bir dünyada + toplar.
JavaScript dünyasında ise önce sorar:
“Sen sayı mısın, yazı mısın?”
🎯 Temel Kullanım
let a = 10;
let b = 5;
let sonuc = a + b;
console.log(sonuc); // 15
Burada her şey net:
a→ sayıb→ sayı- Sonuç → toplama
😈 Tehlikeli Bölge: String + Number
console.log(10 + "5"); // "105"
JavaScript şunu yapar:
- “Hmm biri string”
- “O zaman herkesi string yapayım”
- “Birleştireyim”
📌 Bu toplama değil, string birleştirme.
✅ Doğru Yaklaşım
console.log(10 + Number("5")); // 15
Burada olanlar:
"5"→Number("5")ile sayıya çevrildi- Gerçek matematik yapıldı
🧠 Pratik İpucu
Kullanıcıdan gelen veriler %99 stringtir:
let yas = prompt("Yaşını gir");
console.log(yas + 1); // "201" (20 girdiyse)
Doğrusu:
let yas = Number(prompt("Yaşını gir"));
console.log(yas + 1); // 21
➖ Çıkarma İşlemi (-)
(Daha Olgun, Daha Mantıklı)
Çıkarma operatörü JavaScript’te daha az drama yapar.
console.log(10 - 3); // 7
console.log(10 - "3"); // 7
JavaScript burada der ki:
“Bu belli ki matematik, uğraşmayayım.”
❌ Ama Her Şeyin Bir Sınırı Var
console.log(10 - "elma"); // NaN
🤔 NaN Nedir?
Not a Number
Yani:
“Bunu hesaplayamam ama uygulamayı da çökertmem.”
🧪 NaN Kontrolü
let sonuc = 10 - "elma";
if (isNaN(sonuc)) {
console.log("Bu bir sayı değil!");
}
✖️ Çarpma İşlemi (*)
(Sessiz, Güvenilir, Görev Adamı)
console.log(4 * 5); // 20
console.log(4 * "5"); // 20
JavaScript:
“String mi? Sorun değil, ben hallederim.”
Ama:
console.log(4 * "armut"); // NaN
Burada da:
“Ben matematikçiyim, manav değil.”
🎮 Oyun Örneği
let hasar = 10;
let carpani = 1.5;
let toplamHasar = hasar * carpani;
console.log(toplamHasar); // 15
➗ Bölme İşlemi (/)
(Sürprizlerle Dolu)
console.log(10 / 2); // 5
console.log(10 / 4); // 2.5
Her şey normal… ta ki:
console.log(10 / 3);
// 3.3333333333333335
🤯 Bu Neden Böyle?
JavaScript:
- Floating point sayılarla çalışır
- Bazı ondalıklar tam temsil edilemez
⚠️ Bölme ve Sıfır
console.log(10 / 0); // Infinity
console.log(-10 / 0); // -Infinity
JavaScript diyor ki:
“Tanımsız ama hadi sonsuz diyelim.”
🛑 Güvenli Kontrol
if (bolen === 0) {
console.log("Sıfıra bölünemez!");
}
🔢 Mod Alma (%)
(Gizli Kahraman)
console.log(10 % 3); // 1
Yani:
“10’u 3’e böl, kalanı ver.”
🟢 Tek / Çift Kontrolü
let sayi = 8;
if (sayi % 2 === 0) {
console.log("Çift");
} else {
console.log("Tek");
}
🔁 Döngülerde Kullanım
for (let i = 1; i <= 10; i++) {
if (i % 3 === 0) {
console.log(i + " → 3'ün katı");
}
}
➕➕ Artırma & ➖➖ Azaltma
(Sayaçların Can Damarı)
let sayac = 0;
sayac++;
console.log(sayac); // 1
🤨 Post-Increment vs Pre-Increment
let x = 5;
console.log(x++); // 5
console.log(x); // 6
JavaScript:
“Önce göster, sonra artır.”
let y = 5;
console.log(++y); // 6
Burada:
“Önce artır, sonra göster.”
⏱ Zamanlayıcı Örneği
let saniye = 0;
setInterval(() => {
saniye++;
console.log(saniye);
}, 1000);
🧮 İşlem Önceliği
(Parantez = Hayat Kurtarır)
console.log(10 + 5 * 2); // 20
Ama:
console.log((10 + 5) * 2); // 30
📌 Okuyan insan için de parantez kullan
Kodu sen yazıyorsun ama başkası okuyacak 😉
🛒 Gerçek Hayat: Sepet Hesabı
let fiyat = 500;
let indirimYuzde = 15;
let kargo = 40;
let indirim = fiyat * indirimYuzde / 100;
let toplam = fiyat - indirim + kargo;
console.log(toplam); // 465
Burada Ne Oldu?
- Yüzdelik indirim hesaplandı
- Fiyattan düşüldü
- Kargo eklendi
JavaScript:
“E-ticaret motoru hazır.”
🧠 Altın Değerinde İpuçları
Küçük matematik hataları → büyük bug’lar
+ operatörüne asla körü körüne güvenme
Kullanıcıdan gelen her veri stringtir
NaN gördüğünde sebep %90 tiptir
Parantez kullanmak seni akıllı gösterir
