Giriş
JavaScript, web sayfalarına etkileşim ve dinamik davranışlar eklemek için kullanılan bir programlama dilidir. Temel düzeyde değişkenleri, veri tiplerini ve basit işlemleri öğrendiğinizde, küçük uygulamalar ve etkileşimler oluşturabilirsiniz. Temel kavramlar için başvurulabilecek kapsamlı kaynaklardan biri MDN Web Docs'tur: MDN — JavaScript Rehberi.
Değişkenler: ne için ve nasıl kullanılır?
Değişkenler, program içinde veri sakladığınız isimlendirilmiş konteynerlerdir. JavaScript'te üç ana anahtar kelimeyle değişken bildirebilirsiniz: let, const ve var. Hangisini kullanacağınız, kapsam (scope) ve yeniden atama (reassignment) ihtiyaçlarınıza bağlıdır.
Örnek bildirimler
Basit değişken bildirim örnekleri (tarayıcı konsoluna ya da Node.js'e yapıştırabilirsiniz):
let sayi = 10;
const isim = 'Ahmet';
var yil = 2025;
let vs const vs var
- let: Blok kapsamına (block scope) sahiptir, yeniden atanabilir. Genelde değişebilecek değerler için tercih edilir.
- const: Blok kapsamına sahiptir ve tanımlandıktan sonra aynı ada yeni bir değer atanamaz. Ancak bir nesnenin içindeki özellikler değiştirilebilir; bu, referansın sabit olduğu ama içeriğin mutasyona uğrayabileceği anlamına gelir.
- var: Fonksiyon kapsamına (function scope) sahiptir ve bildirimleri hoisting (yukarı taşınma) davranışı gösterir. Modern kodda genelde let ve const tercih edilir.
Daha fazla detay için MDN'in dil genel bakışına bakabilirsiniz: https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Language_overview.
Kapsam ve hoisting kısa notu
Hoisting nedeniyle var ile bildirilen değişkenler tanımlanmadan önce erişildiğinde undefined değeri dönebilir; oysa let ve const için bildirim öncesinde erişim genellikle ReferenceError ile sonuçlanır (temporal dead zone). Bu davranış ekip kurallarınız doğrultusunda karar vermenizi gerektirir.
JavaScript Veri Tipleri
JavaScript'te temel olarak iki büyük grup vardır: ilkel (primitive) tipler ve nesneler (objects). Yaygın kullanılan ilkel tipler şunlardır:
- Number: Tüm sayılar (tamsayılar ve ondalıklar). Örnek: let pi = 3.14;
- BigInt: Çok büyük tamsayılar için, sonuna n eklenir. Örnek: let b = 9007199254740991n;
- String: Metinler. Örnek: let mesaj = "Merhaba";
- Boolean: true veya false. (Detaylı bilgi: MDN — Boolean ve Boolean() constructor.)
- Undefined: Değer atanmamış değişkenlerin değeri.
- Null: Bilinçli olarak boş değeri temsil eder.
- Symbol: Benzersiz ve değiştirilemez anahtarlar oluşturmak için kullanılır.
- Object: Diziler, fonksiyonlar ve düz objeler gibi koleksiyonlar ve karmaşık yapılar.
Tip denetimi için kullanılan temel araç typeof operatörüdür. Örnekler:
typeof 42 // "number"
typeof 'isim' // "string"
typeof true // "boolean"
typeof null // "object" (tarihsel bir davranıştan kaynaklanan durum)
İfadeler ve Operatörler
JavaScript'te aritmetik, karşılaştırma ve mantıksal operatörler sık kullanılır. MDN'in ifadeler ve operatörler bölümü bu konuda kapsamlıdır: MDN — Expressions and operators.
- Aritmetik: +, -, *, /, %
- Atama: =, +=, -=
- Kıyaslama: ==, !=, ===, !==, >, <, >=, <= (genelde === ve !== tercih edilir)
- Mantıksal: &&, ||, !
- String birleştirme ve şablonlar: 'Merhaba ' + isim veya `Merhaba ${isim}`
Basit Örnekler (Adım Adım)
Aşağıda, öğrenirken doğrudan tarayıcı konsolunda deneyebileceğiniz kısa örnekler var.
1) Merhaba Dünya
Tarayıcı konsoluna yapıştırın ve Enter'a basın:
console.log('Merhaba Dünya');
2) Basit hesaplama
Toplama örneği:
let a = 5;
let b = 7;
console.log(a + b); // 12
3) Fonksiyon ile selamlaşma
Fonksiyon tanımı ve çağırma:
function selamla(isim) {
return `Merhaba ${isim}`;
}
console.log(selamla('Ayşe'));
Nasıl Deneyebilirim?
Kodları denemek için iki kolay yol vardır:
- Tarayıcıda: Bir web sayfası açın, geliştirici araçlarını (DevTools) açın ve Console sekmesine kodu yapıştırın.
- Yerel: Node.js yüklüyse, bir dosya oluşturup node dosya.js ile çalıştırabilirsiniz.
İyi Uygulamalar (Pratik Kurallar)
- Genelde const kullanın: Değer değişmeyecekse const tercih edin; bu, kod okunabilirliğini ve hata tespitini kolaylaştırır.
- let yeniden atama gerektiğinde: Değerin değişmesi beklendiğinde let kullanın.
- Global değişkenlerden kaçının: Gereksiz küresel kapsam çakışmalarına yol açabilir.
- === kullanın: Tür dönüşümlerinden kaçınmak için katı eşitlik (===) tercih edilir.
- Anlamlı isimlendirme: Değişken ve fonksiyon adları amacını açıkça yansıtmalı.
Yaygın Tuzaklar
- typeof null sonuç olarak "object" döner; bu tarihsel bir durumdur ve dikkat edin.
- Ondalık sayılarda hassasiyet: 0.1 + 0.2 === 0.3 kontrolü beklenen sonucu vermeyebilir; sayısal hatalar IEEE 754 kaynağından gelir.
- const ile nesne mutasyonu: const bir nesne bildirdiğinizde referansı sabittir, ancak iç özellikler değiştirilebilir.
Küçük Alıştırma — Uygulama Örneği
Ödev: Bir fonksiyon yazın, adı ve doğum yılını alsın, yaşını hesaplayıp şablon bir metin döndürsün. Çözüm örneği:
function kisiBilgisi(isim, dogumYili) {
const suankiYil = new Date().getFullYear();
const yas = suankiYil - dogumYili;
return `Merhaba ${isim}, yaşınız ${yas}.`;
}
console.log(kisiBilgisi('Mehmet', 1990));
Hızlı Başlangıç Kontrol Listesi
- Temel anahtar kelimeleri öğrenin: let, const, var.
- İlkel tipleri ve nesneleri ayırt edin.
- typeof ile tip kontrolünü deneyin.
- Basit fonksiyonlar yazın ve çalıştırın.
- MDN gibi resmi kaynaklardan detaylı davranışları kontrol edin.