06 Haziran 2022 • 10 dakikalık okuma
ECMAScript (kısaltması: ES), ECMA International tarafından yayımlanan şartnamedir. JavaScript dilinin özelliklerini ve standartlarını belirler. ECMAScript standartlarının diğer uygulamaları ise JScript ve ActionScript dilleridir.
ECMA International (açılımı: European Computer Manufacturers Association), Avrupa Bilgisayar Üreticileri Birliği adlı kuruluştur. Bilgi ve iletişim teknolojileri standartlarına yönelik çalışmalar yapan Avrupa merkezli bir dernektir.
ECMAScript, JavaScript (kısaltması: JS) dilinin standartlarını ve özelliklerini belirlemek için yayımlanan standartlardır. Yani ESMAScript tanımlama, JavaScript tanımın uygulanmasıdır.
JavaScript, statik web sayfalarına etkileşim kazandırmak için tarayıcı üzerinde yorumlanarak çalışan bir betik dili olarak Netscape şirketinden Brendan Eich tarafından Aralık 1995 yılında geliştirilmiştir. Kısa süre içinde geliştirildiğinden ve tarayıcı üzerinde çalışıp yorumlandığından dolayı farklı tarayıcılar arasındaki yorum farklılılarının giderilmesi için bir standarda ihtiyaç duyulmuş ve geliştiricileri Netscape tarafından, ECMA International ile ECMAScript standartları geliştirilmeye başlanmış ve Haziran 1997 yılında standartların ilk sürümü yayımlanmıştır.
ECMA International, Technical Committee 39 (kısaltması: TC39) ekibi, her yeni sürümünde ECMAScript standartlarına yeni özellikler ve işlevsellikler ekler.
Sürüm | Tarih | İsim | Değişiklikler |
---|---|---|---|
1 | Haziran 1997 | İlk Sürüm | |
2 | Haziran 1998 | ISO/IEC 16262 standardı ile uyumlu hale getirilmesi | |
3 | Aralık 1998 | Regex, try/catch istisna yakalama, daha iyi string işleme vb. özellikleri eklenmesi | |
4 | Haziran 2003 | Yayım iptal edildi | |
5 | Aralık 2009 | Regex, strict mod, JSON desteği vb. özelliklerin eklenmesi | |
5.1 | Haziran 2011 | ISO/IEC 16262:2011 standardı ile uyumlu hale getirilmesi | |
6 | Haziran 2015 | ECMAScript 2015 | ES2015 (ES6) - class, let, const, arrow fonksiyonlar, promise özelliklerinin eklenmesi |
7 | Haziran 2016 | ECMAScript 2016 | ES2016 - ** operatörü ve Array.includes özelliği eklenmesi |
8 | Haziran 2017 | ECMAScript 2017 | ES2017 - async/await özellikleri, Kolay object manipülasyonu fonksiyonları vb. özelliklerinin eklenmesi |
9 | Haziran 2018 | ECMAScript 2018 | ES2018 - ... operatörü özelliklerinin eklenmesi |
10 | Haziran 2019 | ECMAScript 2019 | ES2019 - yeni dizi foksiyonlarının geliştirilmesi ve özelliklerinin düzenlenmesi |
11 | Haziran 2020 | ECMAScript 2020 | ES2020 - BigInt, ?? ve ?. operatörü özelliklerinin eklenmesi |
12 | Haziran 2021 | ECMAScript 2021 | ES2021 - replaceAll, promise.any vb. özelliklerinin eklenmesi |
2012 yılı itibarı ile tüm modern web tarayıcıları ECMAScript 5.1 sürümünü destekler. Daha eski tarayıcılar ise genellikle ECMAScript 3 sürümüne kadar destek verirler. Yayımlanan yeni ECMAScript standartlarındaki özelliklerin tamamını, web tarayıcı ve JavaScript motorları desteklemez. Web tarayıcıları yayımlanan standartlardaki özellikleri zamanla kendi tarayıcı ve JavaScript motorlarına implemente ederler. Yeni ECMAScript standartları ile gelen özelliklerin tarayıcı uyumlulukları görmek için ECMAScript Uyumluluk Tablosu kullanılabilir.
Yayımlanan ECMAScript standartları ile gelen yeni özellikleri, eski tarayıcılar ve eski JavaScript motorları desteklemez. Yani yeni standartlarda yazılan JavaScript kodu eski tarayıcılarda çalışmaz bu nedenle yeni kodların eski JavaScript koduna çevrilmeleri (transpile/transcompile) gerekir. Bu işlem için BabelJS kullanılabilir.
Sonuç olarak ECMAScript, JavaScript gibi bir dil değil, dil özelliklerini tanımlayan standartlardır. ECMAScript yeni sürümlerin teklifleri ve çalışma detayları TC39 ekibi tarafından açık kaynak olarak yayımlanmaktadır.