06 Haziran 2022 • 15 dakikalık okuma
JavaScript (kısaltması: JS), Aralık 1995 yılında, 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 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.
JavaScript kodları derlenmez, istemci tarafında web tarayıcı içerisindeki JavaScript motoru tarafından yorumlanarak çalışır. Tüm tarayıcılarda JavaScript kodlarını çalıştıran bir JavaScript motoru bulunur. Örneğin; Firefox tarayıcısı SpiderMonkey, Chrome ise V8 motorunu kullanmaktadır.
Son dönemlerde JavaScript kullanımı oldukça yaygınlaşmıştır ve web tarayıcı haricinde NodeJS ve Deno tarafından sunucu taraflı işlemlerde de programlama dili olarak kullanılmaktadır.
Netscape şirketinden Brendan Eich tarafından ilk olarak Mocha ismi ile geliştirilmiştir. Daha sonra ismi LiveScript yapılmış en sonunda ise Netscape tarafından JavaScript olarak değiştirilmiştir. JavaScript dili söz dizimi olarak Java dilinden etkilenmiştir isim, sözdizimi ve ilgili standart kitaplıklar açısından benzerlikleri olsa da, iki dil birbirinden farklıdır ve tasarım açısından da büyük farklılıklar gösterir, farklı amaçlar için kullanılırlar.
JavaScript kodları sunucu tarafından istemci tarafına gönderilip tarayıcının içindeki motorda çalıştırılır web sayfalarının tasarımını ve davranışlarını değiştirmek için kullanılır. Örneğin; sayfa renginin değiştirilmesi, sayfa üzerindeki bir alanın gösterilip gizlenmesi, boyutunun değiştirilmesi ya da sayfadaki girilen bilgilerin kontrol edilmesi vb. söylenebilir.
Günümüz web sitelerinin neredeyse tamamında JavaScript kullanmaktadır. JavaScript kodları HTML sayfalarınının içine yazılırlar ya da bir .js dosyasına yazılıp html sayfasından çağırılırlar. Günümüz web sitelerinin çoğunda amaca yönelik olarak JS kütüphaneleri kullanılır doğrudan JS kodu çok nadir yazılmaktadır. Bu yöntem Vanilla JS olarak adlandırılır. jQuery, lodash, dojo en fazla kullanılan JS kütüphanelerinin başında gelmektedir.
ECMA International, Technical Committee 39 (kısaltması: TC39) ekibi, her yeni sürümünde ECMAScript standartlarına yeni özellikler ve işlevsellikler ekler. İlk standart Haziran 1997 yılında yayımlanmış 5. sürüme kadar çok büyük değişiklikler olmamıştır. 2015 yılında yayımlanan ES2015 standardı ile birlikte JS diline pek çok yeni öezllik eklenmiştir ve sonraki yıllarda da her sene yeni standart yayımlanarak yeni özellikler eklenmeye devam etmektedir. Yayımlanan yeni ECMAScript standartlarındaki özelliklerin tamamını, web tarayıcı ve JavaScript motorları tarafından 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.
(ES6) ES2015 standartları ile bir çok yeni özellik tanımlanmıştır. let, const, class tanımlama, import/export, => arrow fonksiyon tanımlama gibi özellikler tanımlanmıştır.
ES 2016 standartları ile gelen özellikler; ** operatörü, Array.includes tanımlamaları eklenmiştir.
ES 2017 standartları ile gelen özellikler; async/await fonksiyonlar, Object.values ve Object.entries, string padding tanımlamaları eklenmiştir.
ES 2018 standartları ile gelen özellikler; ... operatörü ve promise.finally tanımlamaları eklenmiştir.
ES 2019 standartları ile gelen özellikler; Array.flat, Array.flatMap, Array.sort güncellemekeri eklenmiştir.
ES 2020 standartları ile gelen özellikler; BigInt, ?? ve ?. operatör ve özellikleri eklenmiştir.
ES 2021 standartları ile gelen özellikler; string replaceAll, promise.any vb. özellikleri eklenmiştir.
Her geçen yıl JavaScript diline yeni özellikler eklenmekte kod yazımı kolaylaşmakta ve dilin yetenekleri artmaktadır. NodeJS geliştirilmesi sonrasında sadece istemci tarafında değil sunucu tarafında da yoğun şekilde kullanılmaktadır.