- Katılım
- 21 May 2023
- Mesajlar
- 602
- Tepki
- 17
- Puan
- 18
Sayfadaki bir düğmeye bastığınızda açılan menü, formu göndermeden uyaran kırmızı yazı, kaydırdıkça yüklenen görseller. Bunların hepsinin arkasında aynı dil çalışıyor ve adı çoğu zaman yanlış anlaşılıyor: JavaScript.
Aşağıda JavaScript'in resmî tanımını, ECMAScript standardıyla ilişkisini, tarayıcı dışında nerelerde çalıştığını ve neden Java ile karıştırılmaması gerektiğini kaynaklarına dayanarak bulacaksınız.
JavaScript ne demek?
MDN'nin JavaScript belgesine göre JavaScript; birinci sınıf fonksiyonlara sahip, hafif, yorumlanan ya da tam zamanında (JIT) derlenen bir programlama dili. En yaygın kullanımı web sayfalarının betik dili olmak, ancak kullanımı tarayıcıyla sınırlı değil.
Belge dilin karakterini de sıralıyor: prototip tabanlı, çöp toplamalı, dinamik tipli ve çok paradigmalı. Yani buyurgan, işlevsel ve nesne yönelimli yaklaşımların hepsi aynı dilde destekleniyor.
En sık yapılan karışıklık' Alıntı:MDN doğrudan uyarıyor: JavaScript'i Java programlama diliyle karıştırmayın; JavaScript "yorumlanan Java" değildir. İkisi ayrı diller, benzerlik büyük ölçüde isimde kalıyor.
Standart nerede tanımlanıyor?
Dilin kuralları bir şirketin insafına bırakılmış değil; bir standarda bağlı. MDN, dilin ECMAScript Dil Belirtimi (ECMA-262) ve ECMAScript Uluslararasılaştırma API belirtimi (ECMA-402) üzerine oturduğunu belirtiyor.
ECMA-262'nin standart sayfası belgeyi ECMAScript 2026 dil belirtimi olarak tanımlıyor ve standardın 17. baskısının Haziran 2026'da yayımlandığını gösteriyor. Sayfada 1997'deki ilk baskıdan bugüne kadarki sürümlerin arşivi de listeleniyor; yani dil, düzenli sürümlerle ilerleyen bir standarda sahip.
Tarayıcı dışında nerede çalışıyor?
MDN, tarayıcı dışı ortamlara örnek olarak Node.js, Apache CouchDB ve Adobe Acrobat'ı sayıyor. Bu, aynı dilin sunucu tarafında, veri tabanı içinde ya da bir belge uygulamasının içinde de çalışabildiği anlamına geliyor.
Sunucu tarafında çalışan bir JavaScript kodu, tarayıcıdaki koddan farklı kurallara tabi oluyor. Örneğin bir anahtarı istemci tarafında tutmanın neden riskli olduğunu API anahtarlarını ele aldığımız yazıda anlatmıştık.
Dinamik yetenekler ne anlama geliyor?
MDN, dilin çalışma zamanı yeteneklerini de sıralıyor:
- Çalışma zamanında nesne kurma: Nesneler önceden tanımlı bir şablona bağlı olmadan oluşturulabiliyor.
- Değişken parametre listeleri: Fonksiyonlar sabit sayıda argümana mahkûm değil.
- Fonksiyon değişkenleri: Fonksiyonlar değişkenlere atanabiliyor, aktarılabiliyor.
- Nesne içgözlemi: Bir nesnenin içeriği çalışma anında incelenebiliyor.
Bu esneklik, dilin hızlı iş görmesini sağlıyor; aynı esneklik, tip hatalarının ancak çalışma anında ortaya çıkmasına da yol açıyor. Dinamik tipleme bu iki yüzü birden taşıyor: yazarken sizi yavaşlatan bir kural yok, ama yanlış tipteki bir değer sorunu ancak o satır çalıştığında gösteriyor.
Standart neden her yıl yenileniyor?
ECMA-262 sayfasındaki arşiv, dilin 1997'deki ilk baskıdan bu yana düzenli sürümlerle ilerlediğini gösteriyor; 5.1'den 16. baskıya kadar bütün sürümler ayrı ayrı listeleniyor.
Bunun pratik karşılığı şu: bir özelliğin hangi sürümde geldiğini merak ettiğinizde bakılacak yer standardın kendisi oluyor. Aynı sayfa, standardın teknik komite tarafından yürütüldüğünü ve en güncel taslakların ayrı bir adreste yayımlandığını da belirtiyor.
Dil kendi kendini ne kadar görüyor?
MDN'nin saydığı yeteneklerden ikisi dilin kendine bakabildiğini gösteriyor: bir fonksiyonun kaynak kodunun geri alınabilmesi ve nesnelerin içeriğinin döngüyle taranabilmesi.
Aynı listede çalışma anında betik üretme imkânı da yer alıyor. Bu güçlü bir yetenek, ama dışarıdan gelen bir metni çalıştırmak söz konusu olduğunda doğrudan bir güvenlik sorusuna dönüşüyor; bu yüzden dinamik betik üretimi, kaçınılabildiği yerde kaçınılan bir araç.
Tarayıcıda çalışırken karşılaşılan sınırlar
Tarayıcıdaki JavaScript kodu, güvenlik gerekçesiyle belirli sınırlar içinde çalışıyor. Başka bir alan adına yapılan isteklerde devreye giren kısıtları CORS hatasını anlattığımız yazıda ayrıntılı işlemiştik.
Metin tarafında da klasik bir tuzak var: karakter kodlaması zinciri baştan sona tutarlı değilse Türkçe karakterler bozuk görünebiliyor. Bu zinciri nasıl kontrol edeceğinizi UTF-8 zincirini ele aldığımız yazıda anlatmıştık.
Sık Sorulan Sorular
JavaScript ne demek?
MDN'ye göre birinci sınıf fonksiyonlara sahip, hafif, yorumlanan veya tam zamanında derlenen bir programlama dilidir; en bilinen kullanımı web sayfalarının betik dili olmasıdır.
JavaScript ile Java aynı şey mi?
Hayır. MDN, JavaScript'in Java ile karıştırılmaması gerektiğini ve "yorumlanan Java" olmadığını açıkça belirtiyor.
JavaScript hangi standarda dayanıyor?
ECMAScript Dil Belirtimi'ne, yani ECMA-262'ye. Standart sayfası belgeyi ECMAScript 2026 dil belirtimi olarak tanımlıyor ve 17. baskının Haziran 2026'da yayımlandığını gösteriyor.
JavaScript yalnız tarayıcıda mı çalışır?
Hayır. MDN tarayıcı dışı ortamlara örnek olarak Node.js, Apache CouchDB ve Adobe Acrobat'ı sayıyor.
Dinamik tipleme ne anlama geliyor?
Değişkenlerin tipinin çalışma zamanında belirlenmesi. Esneklik sağlıyor, ama tip kaynaklı hataların yazım anında değil çalışma anında görülmesine yol açıyor.
Özetle
JavaScript, prototip tabanlı, dinamik tipli ve çok paradigmalı bir dil; kuralları ECMA-262 standardında tanımlı ve standardın son baskısı 2026 tarihli. Tarayıcı en bilinen çalışma ortamı olsa da tek ortam değil. Dili öğrenirken en çok işe yarayan ayrım, dinamik esnekliğin nerede hız, nerede risk getirdiğini görmek.
Yazdığınız kodun çalıştığı ortamı, tarayıcı ile sunucu tarafını ayırt ederek düşünüyor musunuz?
Güncelleme: 26 Ağustos 2026.
Dijital Dünyanıza Yön Veren Pusula