03. Javascript ve ES6

ECMAScript (veya ES), ECMA International tarafından standartlaştırılmış ticari markalı bir betik dili özelliğidir. Birden fazla bağımsız uygulamayı desteklemek ve JavaScript’i standart hale getirmek için yaratılmıştır. ECMAScript, yaygın olarak World Wide Web’de istemci tarafından tarayıcı sayfası üzerinde işlem yapmak için kullanılır. Sunucu uygulamaları ve hizmetleri yazmak için Node.js dilinde de ECMAScript özellikleri tercih edilmiştir. Hem istemci hem de sunucu tarafı ortaya çıktıktan sonra Javascript büyük bir atağa kalkmış ve günümüzde kullanımı çok hızlı şekilde artan bir dil olmuştur. Bu bölüm, 2015 yılında yayınlanan ve çoğu tarayıcıda standart hale gelen ECMAScript 6 (ES6) üzerinedir. Bu arada ECMAScript tarafından yapılan değişikliklere tarayıcılar hemen adapte olmaz. 2015 yılında çıkan değişikliğe bile henüz adapte oluyorlar.

Bu güne kadar çıkan 9 versiyonu inceleyerek başlayalım.

Versiyon Tarih Gelen değişiklikler Editor
1 Haziran 1997 İlk versiyon Guy L. Steele Jr.
2 Haziran 1998 ISO/IEC 16262 göre uluslararası standartlar Mike Cowlishaw
3 Aralık 1999 Düzenli ifadeler, gelişmiş string işleme, yeni kontrol ifadeleri, try/catch exception işleme, hataların daha sıkı tanımı, sayısal çıktı ve diğer geliştirmeler için biçimlendirme Mike Cowlishaw
4 İptal Edildi Dördüncü Baskı, dil karmaşıklığı ile ilgili düşüncel farklılıklar nedeniyle terk edildi.
5 Aralık 2009 Daha kapsamlı hata kontrolü sağlamaya ve hataya açık yapıları önlemeye yönelik bir altküme “strict mode” ekler. Getters ve setters yeni özelliklerin yanı sıra JSON için kütüphane desteğini ve nesne özelliklerine daha eksiksiz yansıması (reflection) gibi bazı yeni özellikler ekler. Pratap Lakshman, Allen Wirfs-Brock
5.1 Haziran 2011 This edition 5.1 of the ECMAScript standard is fully aligned with third edition of the international standard ISO/IEC 16262:2011. Pratap Lakshman, Allen Wirfs-Brock
6 Haziran 2015 ECMAScript 6 (ES6) olarak bilinen (ECMAScript 2015 (ES2015)), sınıflar ve modüller dahil karmaşık uygulamalar yazmak için önemli yeni sözdizimi ekler, ancak bunları ECMAScript 5 strict mode ile aynı terimlerle anlamsal olarak tanımlar. Diğer yeni özellikler iterators ve for/of döngüleri, Python tarzı generators ve generator ifadeleri, arrow fonksiyonları, binary data, yazılı diziler, koleksiyonlar (haritalar, kümeler ve zayıf haritalar), promises, sayı ve matematik geliştirmeleri, reflection ve proxies olarak karşımıza çıkar. Çok köklü değişiklik olduğu ve şu an Node.js tarafında da çok tercih edildiği için ES6 kısaca anlatılacaktır. Allen Wirfs-Brock
7 Haziran 2016 ECMAScript 2016 (ES2016), dil reformu, kod izolasyonu, efektlerin kontrolü ve ES2015’ten yararlanabilen kütüphane / araç temalarını sürdürmeye yönelik yedinci versiyondur. İki yeni özellik içeriyor:

  • üstelleştirme operatörü (**) (Python’daki gibi)
  • Array.prototype.includes.
Brian Terlson
8 Haziran 2017 ECMAScript 2017 (ES2017), sekizinci versiyon, eşzamanlılık ve atomik (concurrency and atomics) özellikler, promises ile sözdizimsel entegrasyon (async / await) özelliklerine sahiptir. Brian Terlson
9 Haziran 2018 Dokuzuncu versiyon olan ECMAScript 2018 (ES2018), asenkronize iteration and generators için özellikler, yeni düzenli ifade özellikleri ve rest/spread parametreleri içerir. Brian Terlson