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.

VersiyonTarihGelen değişikliklerEditor
1Haziran 1997İlk versiyonGuy L. Steele Jr.
2Haziran 1998ISO/IEC 16262 göre uluslararası standartlarMike Cowlishaw
3Aralık 1999Dü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çimlendirmeMike Cowlishaw
4İptal EdildiDördüncü Baskı, dil karmaşıklığı ile ilgili düşüncel farklılıklar nedeniyle terk edildi.
5Aralık 2009Daha 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.1Haziran 2011This 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
6Haziran 2015ECMAScript 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
7Haziran 2016ECMAScript 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
8Haziran 2017ECMAScript 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
9Haziran 2018Dokuzuncu 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