JavaScript, bir çok platformda çalışan, nesne yönelimli 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.

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 tamelleri 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;

0 cevaplar

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir