Teknik Detaylar

ECMAScript Nedir? Bilinmesi Gerekenler...

← Teknik Detaylar
2021-10-20 ~ 2026-06-21 · 5 dk okumaRead in English →
ECMAScript Nedir? Bilinmesi Gerekenler...
Bu yazıyı yapay zekâ ile tartış
Sayfayı kopyala

💡 Özet (TL;DR):

  • ECMAScript Nedir?: Scripting dilleri için kuralları belirleyen resmi bir standarttır (spesifikasyon). JavaScript ise bu standardın en popüler uygulamasıdır.
  • Sürümler (ES6 vs. ES.next): ES6 (2015) dildeki en büyük devrimdir. Sonrasında her yıl kararlı güncellemeler (ES2016-ES2026+) yayınlanmaktadır.
  • Motto: ECMAScript yemek tarifidir, JavaScript o tarifle pişirilmiş yemektir.

GitHub'daki bir JavaScript kütüphanesi, hayalini kurduğunuz şirketin iş ilanı ya da Twitter'da gördüğünüz bir tweet... ECMAScript, JavaScript ile ilgili birçok yerde karşımıza çıkıyor. Fakat "senior" seviyesindeki iş ilanlarında bile bu konuda bir kafa karışıklığı var. Scripting dillerine ve bizim özelimizde JavaScript'e standart getirmeyi amaçlayan ECMAScript'in ilanlarda kullanımı ile ilgili belirli bir standart yok. Açıkçası bu yazıyı yazma fikri benzer ilanlara bakarken aklıma geldi. :)


İlanlarda şöyle gereksinimler görebilirsiniz:

  • JavaScript ve ECMAScript bilgisi
  • ES5 ve ES6 bilgisi
  • ES6+ bilgisi (en sık kullanılan ama teknik olarak biraz muğlak olanı)
  • ES.Next bilgisi (dile eklenecek en son özellikleri ifade edeni)

Google'a ECMAScript yazınca da bu konuda bir kafa karışıklığı olduğu görülüyor:

  • ECMAScript vs. JavaScript
  • ECMAScript Nedir?
  • ECMAScript ve JavaScript Farkları
  • ECMAScript Öğrenmek

Konunun netleşmesi için temel kavramları inceleyelim.


ECMAScript vs. JavaScript

ÖzellikECMAScriptJavaScript
RolüStandart / Spesifikasyon Belgesi (Tarif)Programlama Dili / Uygulama (Yemek)
Yöneten YapıECMA International (TC39 Komitesi)Tarayıcı ve Çalışma Zamanı Motorları (V8, SpiderMonkey)
ÇalıştırılabilirlikÇalıştırılamaz (Kağıt üstündeki kurallardır)Tarayıcılarda, Node.js veya Bun ortamlarında çalıştırılır

ECMA International Nedir?

ECMA, uzun adıyla "European Computer Manufacturers Association", kâr amacı gütmeyen, bilgi ve iletişim teknolojileri konusunda standartlar yayınlayan uluslararası bir çatı dernektir. Yalnızca ECMAScript'ten ibaret değildir; CD-ROM'lardan dosya sistemlerine kadar birçok farklı alanda standartlar geliştirir.


ECMAScript Nedir?

ECMA International tarafından yayınlanmış birçok standarttan biri olan ECMA-262, ECMAScript standardını düzenler. ECMAScript, genel amaçlı scripting dillerinin uyması gereken kuralları, sözdizimini (syntax) ve standart kütüphane API'lerini belirleyen resmi spesifikasyon belgesidir.


ECMAScript vs. JavaScript Farkı

ECMAScript bir standarttır. JavaScript ise bu standarda uyan ve onu uygulayan bir programlama dilidir.

"JavaScript biliyorum ama ECMAScript bilmiyorum" diye bir durum söz konusu değildir. Yazdığınız modern JavaScript kodlarının tamamı aslında ECMAScript standartlarının birer yansımasıdır. Sıfırdan yeni bir tarayıcı motoru veya yeni bir betik dili geliştirmeyecekseniz, standart belgesini sayfa sayfa okumanıza gerek yoktur. Ancak dile eklenen yeni özellikleri takip etmek, daha kaliteli kod yazmanızı sağlar.


TC39 Komitesi ve Yeni Özelliklerin Eklenme Aşamaları

Yeni bir dil özelliğinin ECMAScript standardına (ve dolayısıyla JavaScript'e) dahil edilmesi, TC39 (Technical Committee 39) komitesi tarafından yönetilen 5 aşamalı (Stage 0 - Stage 4) bir süreçten geçer:

  • Stage 0 (Strawman): Fikir aşaması. Komite üyesi bir geliştiricinin dille ilgili önerisidir.
  • Stage 1 (Proposal): Taslak aşaması. Önerilen özelliğin gerekçesi, kullanım senaryoları ve olası API tasarımları sunulur.
  • Stage 2 (Draft): İlk Taslak. Özelliğin sözdizimi ve semantiği resmi şartname diliyle yazılır.
  • Stage 3 (Candidate): Aday Sürüm. Tasarım tamamlanmıştır. Tarayıcı motorlarının bu özelliği deneysel olarak uygulamaya (implement) başlaması beklenir.
  • Stage 4 (Finished): Tamamlanan Sürüm. Özellik artık standartlaşmıştır ve bir sonraki yıllık ECMAScript sürümüne resmi olarak eklenir.

ES5, ES6, ES2020 (ES11)... Nedir Bütün Bunlar?

ECMAScript her yıl gözden geçirilerek güncellenir. 2015 yılındaki büyük değişiklikten (ES6) sonra komite, sürümleri sürüm numarası yerine yıllarla adlandırmaya karar vermiştir (ES2015, ES2020 vb.).

  • ES6 (ECMAScript 2015): Let/Const, Arrow Functions, Classes, Promises ve Modules gibi dilin çehresini tamamen değiştiren en büyük güncellemedir.
  • ES.next: Standartlaştırma sürecinin son aşamasında olan ve bir sonraki resmi sürümde yer alacak olan özellikleri ifade eder.
  • ES8+ Gereksinimi: Kodun çalışması için async/await gibi ES8 (ES2017) ve sonrasına ait özellikleri destekleyen bir çalışma ortamına ihtiyaç duyulduğu anlamına gelir.

ECMAScript Kodum Her Ortamda Çalışır mı?

Günümüzde uyumluluk tablosu oldukça değişti. ES6 (2015) sürümü ve hatta ES2020/ES2021 gibi birçok modern ECMAScript özelliği, modern tarayıcılar ve Node.js/Bun ortamları tarafından %99.9 oranında yerel (native) olarak desteklenmektedir.

Derleyicilere (transpiler) ve paketleyicilere yalnızca şu durumlarda ihtiyaç duyarsınız:

  1. Internet Explorer gibi artık geçerliliğini yitirmiş çok eski tarayıcıları veya eski mobil cihazları desteklemeniz gerekiyorsa.
  2. TC39 komitesi tarafından henüz resmileştirilmemiş deneysel özellikleri (ES.Next) kullanmak istiyorsanız.

Bu durumlar için kullanılan popüler araçlar:

  • Babel: Klasik ve en popüler JavaScript derleyicisidir. ES6+ kodlarını eski tarayıcıların anlayabileceği ES5 formatına çevirir.
  • SWC & esbuild: Babel'ın modern, Rust ve Go dilleriyle yazılmış ultra hızlı alternatifleridir. Modern araçlar (Vite, Next.js vb.) artık varsayılan olarak SWC veya esbuild kullanmaktadır.

Sıkça Sorulan Sorular

JavaScript dışında ECMAScript kullanan başka diller var mı?

Geçmişte Microsoft tarafından geliştirilen JScript ve Adobe Flash altyapısında kullanılan ActionScript de ECMAScript standartlarını temel almaktaydı. Günümüzde ise en yaygın ve baskın uygulama JavaScript'tir.

İş ilanlarında "ES6+ bilgisi" neden aranıyor?

Aslında istenen şey, sadece 2009 öncesi eski JavaScript (ES5) yazım tarzıyla kalmayıp; modern JavaScript'in getirdiği import/export, destructuring, arrow functions, async/await gibi modern pratiklere hakim olmanızdır.

SWC/esbuild varken Babel'a hala ihtiyaç var mı?

Çok eski tarayıcıları desteklemeniz gerekiyorsa ve oldukça spesifik Babel eklentilerine bağımlıysanız Babel hala gereklidir. Ancak standart web projelerinde hız avantajı nedeniyle SWC ve esbuild modern standart haline gelmiştir.


Bu Yazıda Yapılan Değişiklikler
  • 21.06.2026: Türkçe imla kuralları (birçok, kâr amacı vb.), JavaScript marka adı yazımları ve esbuild küçük harf standardı uygulandı. Tarayıcı uyumluluğu ve ES5 derleme gerekliliği bilgileri 2026 standartları doğrultusunda güncellendi.
  • 20.06.2026: Yazı 2026 standartları doğrultusunda güncellendi. TC39 karar süreçleri (Stage 0-4), ECMAScript vs. JavaScript karşılaştırma tablosu, SWC ve esbuild gibi modern derleyici alternatifleri eklendi.
  • 12.05.2022: Yazı özeti düzenlendi, bazı yazım hataları düzeltildi.