JavaScript, bir çok platformda çalışan, nesne yönelimli, prototip tabanlı, dinamik türlere ve fonksiyonlara sahip betik bir script dilidir. Esnek, hafif ve küçüktür. Bir bilgisayar ortamında (örneğin, web tarayıcısında) JavaScript, kontrol sağlayabilmek için bulunduğu ortamında nesnelere bağlanır. Yaygın olarak da Nodejs gibi platformlar sayesinde sunucu tarafında da kullanılmaktadır.
JavaScript yazım şekli C programlama dilinden türetilmiş, semantiği ve tasarımı ise Self ve Scheme programlama dillerinden esinlenmiştir.
JavaScript, Array, Date ve Math gibi nesneleri içeren standart nesne kütüphanelerini operatörler, kontrol yapılar ve ifadeler gibi temel dil setlerini içerir. JavaScript çekirdeği, ilave nesneler ile birlikte çeşitli amaçlar için genişletilebilir. Örneğin;
- İstemci (Client) taraflı JavaScript, yeni nesneler üretmek amacıyla çekirdek dili genişleterek tarayıcının ve kendi sahip olduğu DOM (Document Object Model) kontrol edebilmesini sağlayarak kullanıcı etkileşim özelliklerinin kapısını açar. Örnek olarak, bir HTML uygulamasının form girdiler ve sayfa dolaşımı gibi kullanıcı olaylarını yanıtlayabilme olanakları gibi.
- Sunucu taraflı JavaScript, bir sunucu üzerinde çalışmakta olan JavaScript’e yönelik yeni nesneler üretmek suretiyle çekirdek dili genişletir. Örnek olarak, sunucu-taraflı uzantılar, bir uygulamanın veri tabanı ile iletişim kurmasına, bir işlemden başka bir işleme bilgi aktararak uygulamanın devamlılığını sağlamasına veya sunucudaki dosya üzerinde değişiklik yapmasına olanak vermesi.
JavaScript ve Java
JavaScript ve Java bazı yönleriyle benzer olmakla birlikte temel olarak birbirinden farklı dillerdir. JavaScript’te sabir Java tipleri ve Java’daki güçlü tip denetimi yoktur. JavaScript Java ile benzerlik göstermesi nedeniyle, isminin LiveScript’ten JavaScript’te değiştirmesine neden olan Java’daki çoğu söz dizimi ifadesini, isimlendirme ve düzenini ve basit kontrol akışını yapılarının aynı olmasıdır.
Java’nın tanımlanarak oluşturulmuş sınıflar derle-çalıştır sisteminin aksine; JavaScript, veri tiplerinin ufak bir kısmı olan sayısal, boolean ve string veri tiplerini destekleyen çalışma sistemine sahiptir. JavaScript’te diğer dillerde yaygın olarak kullanılan sınıf temelli nesne modeli yerine prototip temelli nesne modeli vardır. Prototip temelli model, dinamik olarak miras almayı destekler. Böylelikle miras olarak alınan verinin, nesneler tarafından çoğaltılarak değiştirilebilmesi sağlanır. Ayrıca JavaScript, herhangi bir özel tanımlamaya gerek kalmadan fonksiyonları da destekler. Fonksiyonlar, esnek biçimlerde çalıştırılabilen metodlar halinde bir nesnenin özellikleri olabilir.
JavaScript, Java’ya göre oldukça serbest kuralları olan bir dildir. Tüm değişkenler, sınıflar ve metodları her seferinden baştan tanımlamanıza gerek yoktur. Metodların public, private ve proteced olup olmadığı gibi bunların arayüzlerini tanımlama gibi kaygılarınız da yoktur. Değişkenler, parametreler ve fonksiyon dönüş türleri üstü kapalı türler değildir (Tipine derleyici karar verir).
Java, tip güvenliği ve hızlı çalıştırma için tasarlanmış bir sınıf tabanlı programlama dilidir. Tip güvenliği, örneğin bir Java tam sayısını bir nesne referansına çeviremeyeceğiniz ya da gizli belleğe Java bytecodeları bozarak ulaşamayacağınız anlamına gelir. Java’nın sınıf tabanlı model, programların sadece sınıflardan ve onların metodlarından oluştuğu anlamına gelir. Java’nın sınıf kalıtımı ve katı şekildeki yazımı, genellikle sıkıca bağlanmış nesne hiyerarşileri gerektirir. Bu gereksinim, Java programlamayı JavaScript programlamadan daha karmaşık hale getirir.
JavaScript küçük yapısının aksine temelleri HyperTalk ve dBASE gibi dinamik tipli diller dayanır.
JavaScript ve ECMAScript
JavaScript standartlarını, ECMA International tarafından belirlenir. ECMA International, JavaScript temelli standartlaştırılmış, uluslararası bir programlama dili (ECMAScript) sunmak için, bilgi ve iletişim sistemlerinin standartlaştırılmasını sağlayan bir dernek statüsündeki kuruluştur (ECMA’nın eski açılımı: Europan Computer Manufacturers Association – Avrupa Bilgisayar Üreticileri Derneği). Standartlaştırılmış JavaScript versiyonu olan EcmaScript, standardı destekleyen tüm uygulamalarda aynı şekilde çalışır. Firmalar, açık standart dili kullanarak kendi JavaScript dillerini oluşturabilirler. ECMAScript standardı ECMA-262 beyannamesi adı altında belgelendirilmiştir. ECMA-262 standardı ayrıca ISO tarafından da ISO – 16262 olarak onaylanmıştır. Beyannameye buradan ulaşabilirsiniz. ECMAScript beyannamesi, DOM (Document Object Model – Doküman Nesne Modeli) hakkında herhangi bir tanımlama sunmaz. Çünkü DOM W3C ve WHATWG tarafndan standartlaştırılmıştır.
JavaScript ve EcmaScript Dokümantasyon Farkları
ECMAScript beyannamesinin kullandığı terminoloji ve söz dizimine bir JavaScript programcısı alışkın olmayabilir. Dilin açıklaması ECMAScript’ten farklılık göstermesine rağmen, dilini kendisi aynı kalmıştır. Yani JavaScript, ECMAScript beyannamesinde belirlenen bütün fonksiyonelliği kapsar.
Kaynaklar :
https://developer.mozilla.org;
Cevapla
Want to join the discussion?Feel free to contribute!