İnternette gezindiğiniz hemen hemen her an, farkında olmasanız da JavaScript ile etkileşime giriyorsunuz. Bir web sitesinde tıkladığınızda açılan açılır pencereler (pop-up’lar), formu eksik doldurduğunuzda anında beliren uyarı mesajları, sayfayı yenilemeden yüklenen yeni içerikler veya tarayıcı üzerinden oynadığınız oyunlar… Tüm bu deneyimlerin arkasındaki güç JavaScript’tir.
Günümüz itibarıyla, internetteki web sitelerinin %98.9’u kullanıcı tarafındaki (client-side) dinamik davranışları kontrol etmek için JavaScript kullanmaktadır. Yeni başlayanlar için JavaScript’in ne olduğunu, ne işe yaradığını, web dünyasındaki yerini ve temel özelliklerini örneklerle pekiştirerek bu kapsamlı rehberde inceleyeceğiz.
JavaScript’in Kısa Tarihçesi
JavaScript, 1995 yılında Netscape Communications şirketinde çalışan Brendan Eich tarafından, web sayfalarına basit bir etkileşim katmak amacıyla sadece 10 günlük bir süre içinde geliştirilmiştir.
Dile ilk başta Mocha, ardından LiveScript isimleri verilmişti. Ancak o dönemde Java programlama dili son derece popüler olduğu için, Netscape yönetimi pazarlama stratejisi olarak dilin adını Aralık 1995’te JavaScript olarak değiştirdi. Bu isim benzerliği, günümüzde hala “Java ile JavaScript aynı şey mi?” karmaşasına yol açsa da, aslında iki dil tasarım, kullanım amacı ve mimari olarak birbirinden tamamen farklıdır.
Tarayıcılar arası rekabetin (“tarayıcı savaşları”) artmasıyla birlikte dilin standartlaşması gerekti ve ECMA International kurumuna sunularak standart bir yapıya kavuşturuldu. Bu nedenle JavaScript’in resmi standart adı ECMAScript (ES) olarak geçer.
Web Geliştirmede JavaScript’in Yeri: Ev Benzetmesi
JavaScript’in ne işe yaradığını anlamak için bir web sayfasını bir eve benzetebiliriz:
- HTML (HyperText Markup Language): Evin iskeleti, duvarları ve odalarıdır. Sitenin temel yapısını ve içeriğini belirler.
- CSS (Cascading Style Sheets): Evin boyası, dekorasyonu ve mobilyalarıdır. Sitenin renklerini, fontlarını ve görsel tasarımını ayarlar.
- JavaScript: Evin elektrik, su tesisatı ve akıllı ev sistemleridir. Web sayfasına etkileşim (interactivity) katarak onu statik bir belge olmaktan çıkarıp, canlı ve dinamik bir uygulamaya dönüştürür.
JavaScript Ne İşe Yarar? (Temel Kullanım Alanları)
JavaScript, DOM (Document Object Model) adı verilen bir yapı sayesinde HTML ve CSS ile doğrudan iletişim kurabilir. JavaScript’in web tarayıcısında yapabildiği bazı temel işlemler şunlardır:
- DOM Manipülasyonu: Sayfadaki bir HTML elemanını seçip onun metnini, rengini veya konumunu anlık olarak değiştirebilir.
- Olay Dinleyicileri (Event Listeners): Kullanıcının sayfadaki tıklama (click), üzerine gelme (mouseover) veya klavyede bir tuşa basma gibi eylemlerini “dinleyip” bunlara tepki verebilir.
- Asenkron Veri Çekme (AJAX & Fetch API): Sayfayı yenilemeye (refresh) gerek kalmadan, arka planda bir sunucuya bağlanıp veri alabilir veya veri gönderebilir. Modern web sitelerindeki (örneğin sosyal medyadaki “daha fazla yükle” butonları) akıcılık bu sayede sağlanır.
JavaScript’in En Önemli Teknik Özellikleri
JavaScript’i diğer dillerden ayıran bazı karakteristik teknik özellikleri vardır:
1. Dinamik Tipli Bir Dildir (Dynamically Typed): C++ veya Java gibi dillerde bir değişkenin veri tipini (sayı, metin vs.) baştan belirtmek zorundasınızdır (Statik tip). JavaScript’te ise tipler çalışma zamanında (runtime) belirlenir. Aynı değişkene önce bir metin (string), sonra bir sayı atayabilirsiniz.
2. Tek İş Parçacıklı ve Olay Döngüsü (Single-threaded & Event Loop): JavaScript varsayılan olarak tek iş parçacıklı (single-threaded) çalışır; yani aynı anda sadece bir komutu işleyebilir. Ancak uygulamaların donmamasını sağlayan dahi mekanizma Event Loop (Olay Döngüsü) sistemidir. JavaScript, uzun sürecek işlemleri (örneğin bir dosyayı okumak veya ağdan veri çekmek) arka plana atar (Web API’lerine devreder) ve ana işlemleri yapmaya devam eder. Arka plandaki iş bittiğinde bir “geri çağırma” (callback) kuyruğuna alınır ve Event Loop bu kuyruğu kontrol ederek sırası gelen işi çalıştırır.
3. Prototip Tabanlı Nesne Yönelimli Programlama (Prototype-based OOP): Geleneksel sınıflar (classes) yerine, nesnelerin diğer nesnelerden miras (inheritance) aldığı prototip tabanlı bir model kullanır. ES6 (ECMAScript 2015) sürümüyle birlikte class sözdizimi eklenmiş olsa da, arka planda dilin çekirdeği hala prototiplerle çalışır.
Yeni Başlayanlar İçin JavaScript Kod Örnekleri
Konuyu pekiştirmek için, JavaScript’in modern sözdizimi olan ES6 ve sonrası kurallarla yazılmış bazı örneklere bakalım.
1. Değişken Tanımlama (let ve const)
Geçmişte değişkenler var ile tanımlanırdı ancak bu, kapsam (scope) sorunlarına yol açıyordu. Modern JavaScript’te değeri sonradan değişebilecek değişkenler için let, sabit kalacak değerler için const kullanılır.
// Sabit bir değer tanımlayalım
const pi = 3.14159;
// Değişebilecek bir veri tanımlayalım
let kullaniciAdi = "Maaike";
console.log(kullaniciAdi); // Çıktı: Maaike
kullaniciAdi = "Laurence"; // let ile tanımlandığı için güncelleyebiliriz
console.log(kullaniciAdi); // Çıktı: Laurence
2. Modern Fonksiyonlar (Arrow Functions)
Fonksiyonlar belirli bir işi tekrar tekrar yapmak için paketlenmiş kod bloklarıdır. ES6 ile gelen Ok Fonksiyonları (Arrow Functions), kod yazımını çok daha kısa ve okunabilir hale getirmiştir.
// Geleneksel Fonksiyon
function topla(sayi1, sayi2) {
return sayi1 + sayi2;
}
// Ok Fonksiyonu (Arrow Function) ile aynı işlem
const modernTopla = (sayi1, sayi2) => sayi1 + sayi2;
console.log(modernTopla(5, 10)); // Çıktı: 15
3. DOM Manipülasyonu ve Olay Dinleyicisi
Kullanıcının HTML üzerindeki bir butona tıkladığında ekrandaki yazının değişmesini sağlayan interaktif bir örnek:
<!-- HTML Kısmı -->
<p id="mesaj">Merhaba, henüz tıklamadınız.</p>
<button id="sihirliButon">Bana Tıkla!</button>
<!-- JavaScript Kısmı -->
<script>
// HTML elemanlarını seçiyoruz
const mesajElemani = document.getElementById("mesaj");
const butonElemani = document.getElementById("sihirliButon");
// Butona tıklama olayı (Event) ekliyoruz
butonElemani.addEventListener("click", () => {
// Tıklanınca gerçekleşecek eylem
mesajElemani.innerText = "Harika! JavaScript ile sayfayı değiştirdiniz.";
mesajElemani.style.color = "blue"; // Rengini mavi yapıyoruz
});
</script>
Bu örnekte gördüğünüz gibi JavaScript, sayfayı statik bir broşür olmaktan çıkarıp kullanıcının hareketlerine cevap veren bir ekrana dönüştürmektedir.
Modern JavaScript Ekosistemi
JavaScript artık sadece basit tıklama işlemleri için kullanılmıyor; devasa bir ekosisteme sahip.
- Frontend (Önyüz) Framework’leri: Geçmişte jQuery gibi kütüphaneler yaygınken, bugün karmaşık kullanıcı arayüzleri inşa etmek için React, Vue.js, Angular ve Svelte gibi devasa ekosistemler kullanılmaktadır.
- Backend (Sunucu Tarafı): 2009’da yaratılan Node.js sayesinde JavaScript, tarayıcı dışında sunucularda da (backend) çalışmaya başladı. Günümüzde Bun ve Deno gibi Node.js’e rakip çok daha hızlı modern çalışma zamanları (runtimes) da mevcuttur.
- TypeScript Devrimi: JavaScript dinamik tipli bir dildir ve büyük projelerde bu durum hatalara yol açabilir. Microsoft’un 2012’de geliştirdiği TypeScript, JavaScript’e “statik tip” denetimi ekleyen bir üst kümedir (superset). Büyük kurumsal projelerin günümüzde neredeyse tamamı, güvenilirliği artırmak için TypeScript ile yazılmaktadır.
Geleceğin Teknolojileri: Yapay Zeka ve WebAssembly
JavaScript’in sınırları 2024 ve sonrasında akıl almaz noktalara ulaştı.
- WebAssembly (WASM): C, C++ veya Rust gibi ağır ve performanslı dillerle yazılmış kodların tarayıcıda doğrudan çalıştırılmasını sağlayan bu teknoloji, JavaScript’i dışlamak yerine onunla birlikte çalışır. Video düzenleme veya 3D oyunlar gibi yoğun CPU gerektiren işlemler artık tarayıcıda WASM ile yapılabilmektedir.
- Tarayıcıda Yapay Zeka (Client-side AI): Artık devasa sunuculara veri göndermeden, kullanıcının cihazının gücünü kullanarak (WebGPU) tarayıcı içinde yapay zeka modelleri çalıştırılabiliyor. Transformers.js veya TensorFlow.js gibi kütüphaneler sayesinde; çeviri, görüntü işleme ve yapay zeka destekli metin analizleri saniyeler içinde JavaScript ile tarayıcıda çözümlenebilmektedir.
Sonuç
JavaScript, 1995 yılında basit bir “tarayıcı betik dili” olarak çıktığı yolculukta bugün web geliştirmenin, sunucu yönetiminin, mobil uygulamaların ve hatta tarayıcı tabanlı yapay zeka asistanlarının bel kemiği haline gelmiştir. Öğrenmesi kolay, devasa bir destek topluluğuna sahip olan bu dil, yazılım dünyasına adım atmak isteyen herkes için en doğru ve gelecek vadeden başlangıç noktalarından biridir.






