myNotlar Logo

JavaScript Nedir?


Bu bölümde, JavaScript'in tanımı, Java, DHTML, JScript ve ECMAScript ile ilişkileri aşağıdaki başlıklar halinde kısaca anlatılmaktadır.

JavaScript, sunucu ve istemci uygulamaları için Netscape'in geliştirdiği, farklı platformlarda çalışabilen, nesne tabanlı bir lisandır. JavaScript ufak ve sade bir lisandır. Herhangi bir sistem lisanı kadar yetenekli olmasa da internet tarayıcılarında HTML içine ve uygulamalara kolayca eklenip sayfaya dinamizm kazandırması için tasarlanmıştır.

JavaScript’i anlamak için HTML’in bilinmesi ön şarttır. HTML ile hazırlanan sayfalar, üzerinde hiçbir işlem yapılmadan ziyaretçiye/istemciye olduğu gibi gönderilir. Ziyaretçinin bilgisayarındaki tarayıcı (browser) bu HTML kodlarını sunucudan aldıktan sonra görüntülenecek biçimde yorumlayarak gösterir. Fakat, tasarlanan bu HTML sayfada günün tarihi gösterilmek istendiğinde doğru tarihi göstermek için tek çözüm her gece sayfanın HTML kodlarının güncellenmesi olacaktı… Peki, her saniye değişen aktif bir saat gösterilmek istendiğinde ne olacaktı?!

Tanımında da belirtildiği gibi JavaScript sayfaya dinamizm kazandırarak tarih ve saat gösterme işlemlerini gerçekleştirebilir. Bunun yanında fare tıklaması ve form girişi gibi kullanıcı olaylarına cevap verebilir. Örneğin, bir HTML formunda istenen posta kodunun veya E-Posta adresinin geçerliliğini kontrol etmek için bir fonksiyon yazılarak sunucu ile herhangi bir bağlantı kurulmadan giriş geçerliliği kontrol edilip uyarı mesajı gösterilebilir.

Çekirdek (Core) JavaScript, Number, String, Boolean, Date, RegExp, ve Math temel nesnelerinden ve operatörler, kontrol yapıları ve ifadeler gibi temel lisan öğelerinden oluşmaktadır. Çekirdek JavaScripti farklı amaçlara hitap eden ekstra nesneler ekleyerek geliştirmek mümkündür.

JavaScript ile Java İlişkisi

 JavaScript ile Java arasında bazı konularda benzerlik olmasına rağmen birbirlerinden farklı lisanlardır. JavaScript prototip tabanlı nesne oluşturmayı destekleyen dinamik bir betik (script) lisanıdır. Java'nın statik yazım şekline ve güçlü tip kontrolüne sahip değildir. JavaScriptin temel sözdizimi, lisanı öğrenmeyi kolaylaştırmak için yeni kavram sayısı azaltılarak Java ve C++ lisanlarına özellikle benzetilmiştir.

JavaScript nesne tabanlıdır. Nesnelerin tipleri arasında hiçbir ayrım yoktur. Kalıtım prototip mekanizması boyunca devam eder ve özellikler ve metodlar herhangi bir nesneye dinamik olarak eklenebilir. Java, sınıf tabanlıdır. Nesneler sınıflara ve aşamalara bölünmüştür ve kalıtım sınıf hiyerarşisi boyunca devam eder. Sınıflara dinamik olarak özellik veya metod eklenemez. JavaScript'te değişkenlerin veri tiplerinin belirtilmesine gerek yoktur. Java'da değişkenlerin veri tipleri tanımlanmalıdır.

JavaScript ile DOM İlişkisi
Dom Nedir?

DOM, bir programlama lisanı veya sadece JavaScript için tasarlanmış bir olgu değildir. DOM, HTML ve XML dokümanları için ve web sayfalarını betiklere (script) ve programlama lisanlarına bağlayan bir API'dir.

Bir dokümandaki başlık, tablo, tablo hücrelerindeki yazı, dokümanın kendisi ve buton gibi her öge o doküman için doküman nesne modelinin bir parçasıdır. DOM (Document Object Model - Doküman nesne modeli) dokümanın/web sayfasının yapısal bir grup olarak temsilini sağlayarak, JavaScript gibi bir script lisanının web sayfası düğümlerine erişilebileceği ve kullanabileceği yolu tanımlar.

Tanımdan da anlaşılacağı gibi JavaScript, doküman üzerindeki herhangi bir elemente erişip içeriği veya özellikleri ile ilgili işlemleri yapmak için doküman nesne modelini kullanır.

JavaScript ile DHTML İlişkisi
DHTML Nedir?

Dinamik HTML'in en kısa tanımı:

 (X)HTML + JavaScript + DOM + CSS = DHTML

 DHTML, (Dinamik HTML / Dynamic HTML), HTML veya JavaScript'in yeni bir tanımlaması değildir. Yeni bir script veya programlama lisanı da değildir. DHTML, sayfayı düzenli, ayrıntılı ve daha etkileyici göstermek için JavaScript dinamizminin geliştirilmiş şeklidir.

 DHTML içinde DOM, (X)HTML sayfanın yapısal bir örneğini oluşturarak script lisanının nesnelere erişimini sağlar. CSS, yazıların renklerini ve fontlarını tanımlamak, arkaplan renklerini ve resimlerini belirlemek ve nesnelerin yerleşimini ayarlamak gibi görsel konuları belirler. JavaScript ise DOM ve CSS'nin dinamik olarak kullanılmasını sağlar.

Örneğin web sayfalarında sıkça karşılaştığınız menüleri düşünün! Fare ile menünün herhangi bir seçeneği üzerine geldiğinizde kısaca aşağıdaki işlemler gerçekleşir.

 JavaScript fare işaretcisini fark eder ve DOM ile CSS özelliklerini değiştirerek seçeneğin görsel olarak belirlenmesini sağlar. Bu işlemlerin hepsi (X)HTML içinde gerçekleşir.

DHTML Örneği

JavaScript ile JScript ilişkisi ve ECMA tanımlaması

ECMA (European Computer Manufacturers Association - Avrupa Bilgisayar Üreticileri Birliği) bilgi ve iletişim sistemleri için uluslararası bir standartlar birliğidir.

ECMA, Netscape ve Microsoft ile çalışmaları sonucunda JavaScript'i standartlaştırmıştır. JavaScript'in bu standartlaşan versiyonu ECMAScript olarak ifade edilir ve bu standartı desteleyen tüm uygulamalar da aynı şekilde hareket eder. ECMA standartının ilk versiyonu ECMA-262 tanımlamasıyla dökümanlaştırılmış ve ISO (International Organization for Standards - Uluslararası Standartlar Birliği) tarafından ISO-16262 olarak onaylanmıştır.

Bu bildirime göre JavaScript ve JScript'in tanımları aşağıdaki gibidir.

JavaScript Nedir?

JavaScript, ECMA-262 (ECMAScript Edition 3) lisan tanımlamasının Netscape uyarlamasıdır.
Daha fazla bilgi için : (Mozilla MDC) About JavaScript

JScript Nedir?

JScript, ECMA-262 (ECMAScript Edition 3) lisan tanımlamasının birkaç ufak istisna dışında Microsoft uyarlamasıdır.
Daha fazla bilgi için : (MSDN) What is JScript?

Sonuç olarak: JavaScript ve JScript, ECMA 262 lisan tanımlamasını temel alan ve %100'e yakın derecede benzerlik gösteren farklı script lisanlarıdır.

Sürüm karşılaştırmaları hakkında ayrıntılı bilgiyi aşağıdaki linklerden bulabilirsiniz.

 
myNotlar Hakkında
Telif Hakkı © 2007-2009 mynotlar.com Tüm Hakları Saklıdır. Kopyalanamaz. Yayınlanamaz.
E-Posta : support@myNotlar.com

| Tek Kişilik Oyunlar | Sudoku | YasinKa |