ANASAYFA | BLOG | Javascript Nedir?

Javascript Nedir?

Netscape tarafından yaratılmış; web tarayıcılarında kullanılmakta olan dinamik bir programlama dilidir. Java dilindeki kodlamaların kullanımı esasına dayanır.

Öncelikle javascript bir betik diğer bir ifadeyle script dilidir. Betik Türkçemizde yazılı olan şey anlamına gelir. Ancak bunu daha da açarsak, betik dili aslında bilgisayar literatüründe uygulamaları harekete geçiren yazı bloklarına verilen addır. Bu anlamda javascript Web Programcıları için vazgeçilmez bir etkileşimli programlama dili diyebiliriz.

Etkileşim derken aslında betik dilinin yaptığı uygulamaları tetiklemede “kullanıcıları aktif” kılma durumu mevcuttur. Yani kullanıcının fare ile yaptığı tıklama olayında bir mesaj verilmesi verilebilecek en basit örnektir. Bunun gibi daha binlerce davranışlar, durumlar karşısında tetiklenecek olayları bizler javascript ile yani betik programlama diliyle yapabiliriz. Windows’ta veya Linux’ te kullanılan Web Browser adını verdiğimiz tarayıcılar hemen hemen aynı işlevleri gerçekleştirirler.

Bu anlamda bizlere sunulan davranışlar ne kadar geniş olursa olsun bir şekilde tanımlanmış davranışlardır. İşte javascript bu davranışlar üzerinde çalışır. Web sayfasında bir resmin sağdan sola doğru hareket etmesi, bir resimden sonra diğer resmin görüntülenmesi, resmin üzerine gelindiğinde resmin boyutunun büyümesi vb. daha binlerce durum web tarayıcıların alanına girer.

Yani bu işlevler web tarayıcıları sayesinde gerçekleşir. Bu anlamda Javascriptte bu olayları tetiklemeyi ve bu olayların gerçekleştirilmesinden sorumlu fonksiyonları içerinde barındırır. Sakın Java Programlama diliyle karıştırmayın. Java programlama dili masaüstü, mobil vb. uygulamalar geliştirmek için kullanılır. Ancak Javascript tamamen web programlama alanında faaliyet gösteren programcılara yöneliktir.

19 yıl önce yani 1995 yılında Netscape Communications firması tarafından oluşturulan ve piyasaya sürülen bu programlama dili günümüzde aslında gelişmiş tüm web sitelerinde kullanılmaktadır. O günlerde insanlar Javascript nedir sorusunu kendilerine sıkça sordular. Çünkü ilk çıktığı yıllarda her tarayıcı bu yazılımı desteklemiyordu.

Ancak ona rağmen mağrifetleri kısa sürede tüm dünya tarafından bilinir hale geldi. Her geçen gün değerine değer katan bu betin dili için yine bu firma javascripti geliştirmeye devam ediyor. Javascript istemci tarafında çalışan bir programlama dilidir. Yani javascript kodlarını çalıştırmak için bir sunucu (server) kurulumu yapmak, ya da sunucu sistemine sahip bir barındırma alanı satın almak gerekmez.

Script kodlarını yazıp, dosyanızın uzantısını “.htm”, “.html” gibi uzantılarda kaydedip, sonra bu dosyanın üzerine çift tıklamanız yeterli. Bu kodların derlenmesi istemci (yani bizim kendi bilgisayarımız) bilgisayardaki Web Tarayıcılar sayesinde gerçekleşir. ASP.NET veya PHP gibi bir sunucu sisteminin olması gerekli değildir. Bu anlamda aslında hem etkileşimli hem de İSTEMCİ tarafında çalışan tek Web Programlama dili diyebiliriz. Çünkü HTML ile kullanıcılara karar verme sayfada inisiyatif alabilme, kısacası etkileşim sağlayamazsınız.

Bunun için mutlaka etkileşimli programlama dillerinden birini kullanmalısınız. ASP.NET ve PHP gibi diller etkileşimli dillerdir ancak derlenebilmesi için sunucuya gönderilmesi gerekir. Javascriptte böyle bir durum söz konusu değildir. Ancak Javascript aslında sunucu taraflı da çalıştırılabilir. Özellikle yoğun programlama içeren oyun siteleri, gelişmiş web programları gibi sistemler sunucu taraflı çalıştırılıyorlar. Bu aslında bir esneklik sağlıyor.


JavaScript ile java iliş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 ilişkisi

DOM, bir programlama lisanı veya sadece JavaScript için tasarlanmış bir olgu değildir. DOM, HTML ve XMLdokü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 ilişkisi

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.