JavaScript nedir?
JavaScript, geliştiricilerin etkileşimli web sayfaları oluşturmak için kullandığı bir programlama dilidir. JavaScript işlevleri, sosyal medya akışlarını yenilemekten animasyonlar ve etkileşimli haritalar göstermeye kadar, bir web sitesi kullanıcısının deneyimini iyileştirebilir. İstemci tarafındaki bir betik dili olarak, World Wide Web'in temel teknolojilerinden biridir. Örneğin, internette gezinirken bir görsel döngüsü, görmek için tıkla açılır menüsü ya da bir web sayfasında dinamik olarak değişen öğe renkleri gördüğünüzde JavaScript efektlerini görmüş olursunuz.
JavaScript ne için kullanılır?
Tarihsel olarak web sayfaları bir kitaptaki sayfalara benzer şekilde statikti. Statik bir sayfa bilgileri çoğunlukla sabit bir düzende görüntülüyordu ve şimdi modern bir web sitesinden beklediğimiz her şeyi yapmıyordu. JavaScript, web uygulamalarını daha dinamik hale getirmek için tarayıcı bazlı bir teknoloji olarak ortaya çıktı. Tarayıcılar JavaScript kullanarak kullanıcı etkileşimine yanıt verebilir ve web sayfasındaki içerik düzenini değiştirebilir.
Dil olgunlaştıkça JavaScript geliştiricileri kitaplıklar, çerçeveler ve programlama uygulamaları oluşturdu ve bunları web tarayıcılarının dışında kullanmaya başladı. Bugün JavaScript'i hem istemci tarafı hem de sunucu tarafı geliştirme için kullanabilirsiniz. Aşağıdaki alt bölümlerde bazı yaygın kullanım durumları sunuyoruz:
Tarihsel olarak web sayfaları bir kitaptaki sayfalara benzer şekilde statikti. Statik bir sayfa bilgileri çoğunlukla sabit bir düzende görüntülüyordu ve şimdi modern bir web sitesinden beklediğimiz her şeyi yapmıyordu. JavaScript, web uygulamalarını daha dinamik hale getirmek için tarayıcı bazlı bir teknoloji olarak ortaya çıktı. Tarayıcılar JavaScript kullanarak kullanıcı etkileşimine yanıt verebilir ve web sayfasındaki içerik düzenini değiştirebilir.
Dil olgunlaştıkça JavaScript geliştiricileri kitaplıklar, çerçeveler ve programlama uygulamaları oluşturdu ve bunları web tarayıcılarının dışında kullanmaya başladı. Bugün JavaScript'i hem istemci tarafı hem de sunucu tarafı geliştirme için kullanabilirsiniz. Aşağıdaki alt bölümlerde bazı yaygın kullanım durumları sunuyoruz:
JavaScript nasıl çalışır?
Tüm programlama dilleri, İngilizce benzeri söz dizimini işletim sisteminin çalıştıracağı makine koduna çevirerek çalışır. JavaScript, genel olarak bir betik dili veya yorumlanmış bir dil olarak sınıflandırılır. JavaScript kodu yorumlanır, yani bir JavaScript motoru tarafından doğrudan temeldeki makine dili koduna çevrilir. Diğer programlama dillerinde bir derleyici tüm kodu ayrı bir adımda makine kodunda derler. Bu nedenle, tüm betik dilleri programlama dilleridir ancak tüm programlama dilleri betik dili değildir.
JavaScript motoru
JavaScript motoru, JavaScript kodunu çalıştıran bir bilgisayar programıdır. İlk JavaScript motorları yalnızca yorumlayıcılardı ancak tüm modern motorlar performansı artırmak için tam zamanında veya çalışma zamanı derlemesi kullanır.
İstemci tarafı JavaScript
İstemci tarafı JavaScript, JavaScript'in tarayıcınızda çalışma şeklini ifade eder. Bu durumda JavaScript motoru tarayıcı kodunun içindedir. Tüm büyük web tarayıcıları kendi yerleşik JavaScript motorlarıyla birlikte gelir.
Web uygulaması geliştiricileri, fare tıklaması veya fareyle üzerine gelme gibi çeşitli olaylarla ilişkili farklı işlevlerle JavaScript kodu yazar. Bu işlevler HTML ve CSS'de değişiklikler yapar.
İstemci tarafı JavaScript'in nasıl çalıştığına dair bir genel bakış:
1. Tarayıcı, ziyaret ettiğinizde bir web sayfası yükler.
2. Yükleme sırasında tarayıcı, sayfayı ve düğmeler, etiketler ve açılır kutular gibi tüm öğelerini Belge Nesne Modeli (DOM) adı verilen bir veri yapısına dönüştürür.
3. Tarayıcının JavaScript motoru, JavaScript kodunu bayt koduna dönüştürür. Bu kod, JavaScript söz dizimi ile makine arasında bir aracıdır.
4. Bir düğmeye fare tıklaması gibi farklı olaylar, ilişkili JavaScript kod blogunun yürütülmesini tetikler. Motor daha sonra bayt kodunu yorumlar ve DOM'da değişiklikler yapar.
5. Tarayıcı yeni DOM'u görüntüler.
Sunucu tarafı Javascript
Sunucu tarafı JavaScript, arka uç sunucu mantığında kodlama dilinin kullanımını ifade eder. Bu durumda JavaScript motoru doğrudan sunucuya oturur. Sunucu tarafı JavaScript işlevi veri tabanına erişebilir, farklı mantıksal işlemler gerçekleştirebilir ve sunucunun işletim sistemi tarafından tetiklenen çeşitli olaylara yanıt verebilir. Sunucu tarafı komut dosyası oluşturmanın birincil avantajı, web sitesi yanıtını gereksinimlerinize, erişim haklarınıza ve web sitesinden gelen bilgi isteklerine göre büyük ölçüde özelleştirebilmenizdir.
İstemci tarafına karşı sunucu tarafı
Dinamik kelimesi hem istemci tarafı hem de sunucu tarafı JavaScript'i tanımlar. Dinamik davranış, gerektiğinde yeni içerik oluşturmak için web sayfası görüntüsünü güncelleme yeteneğidir. İstemci tarafı ve sunucu tarafı JavaScript arasındaki fark, yeni içerik oluşturma biçiminde yatmaktadır. Sunucu tarafı kodu uygulama mantığını kullanarak ve veri tabanındaki verileri değiştirerek dinamik olarak yeni içerik oluşturur. İstemci tarafı JavaScript ise, kullanıcı arayüzü mantığını kullanarak ve zaten istemcide bulunan web sayfası içeriğini değiştirerek tarayıcı içinde dinamik olarak yeni içerik oluşturur. İki bağlamda anlam biraz farklıdır ancak ilişkilidir ve her iki yaklaşım da kullanıcı deneyimini geliştirmek için birlikte çalışır.
Dinamik özelliklerdeki uygulama dışında, iki JavaScript kullanımı arasındaki diğer bir fark, kodun erişebileceği kaynaklardır. İstemci tarafında tarayıcı JavaScript'in çalışma zamanı ortamını kontrol eder. Kod, yalnızca tarayıcının erişmesine izin verdiği kaynaklara erişebilir. Örneğin, siz bir indirme düğmesine tıklamadığınız sürece sabit diskinize içerik yazamaz. Öte yandan, sunucu tarafı işlevleri, gerektiğinde sunucu makinesinin tüm kaynaklarına erişebilir.
JavaScript kitaplıkları nedir?
JavaScript kitaplıkları, web geliştiricilerinin standart JavaScript işlevlerini gerçekleştirmek için yeniden kullanabilecekleri önceden yazılmış kod parçacıkları koleksiyonlarıdır. JavaScript kitaplık kodu, gerektiğinde proje kodunun geri kalanına eklenir. JavaScript uygulama kodunu bir ev olarak düşünüyorsanız JavaScript kitaplıkları, geliştiricilerin evin işlevselliğini geliştirmek için kullanabilecekleri hazır mobilyalar gibidir.
Aşağıdakiler, JavaScript kitaplıklarının bazı yaygın kullanımlarıdır:
Veri görselleştirmesi
Veri görselleştirme kullanıcıların, örneğin yönetici panelinde, gösterge tablosunda ve performans ölçümlerinde istatistikleri görüntülemesi için çok önemlidir.
Chart.js, ApexCharts ve Algolia Places gibi kitaplıklar, verileri çizelgelerde ve haritalarda görüntüleyen web uygulamaları oluşturmak için kullanabileceğiniz yerleşik işlevlere sahiptir.
DOM işleme
Menü animasyonları, resim galerileri, düğmeler, ışık kutuları ve daha fazlası gibi standart web sitesi işlevleri için kod sağladıklarından web geliştirmeyi kolaylaştırmak üzere jQuery ve Umbrella JS gibi kitaplıkları kullanabilirsiniz.
Formlar
Matematik ve metin işlevleri
Birçok web uygulamasının matematiksel denklemleri çözmesi ve tarihleri, saatleri ve metni işlemesi gerekir. Bu tür tüm istekleri sunucuya göndermek yerine, bazılarının istemci tarafında ele alınması daha verimlidir. Web geliştiricileri bunu Date.js, Sylvester ve JavaScript URL Library gibi JavaScript kitaplıklarını kullanarak yapar.
JavaScript çerçeveleri nedir?
JavaScript kitaplıkları gibi, JavaScript çerçeveleri de farklı işlevleri gerçekleştiren ve yeniden kullanılabilen önceden yazılmış kod parçacıkları topluluğudur. Ancak JavaScript kitaplıkları isteğe bağlı kullanım için özel bir araç iken, JavaScript çerçeveleri herhangi bir web uygulamasını şekillendirmeye ve düzenlemeye yardımcı olan eksiksiz bir araç setidir. JavaScript uygulama kodunu bir ev olarak düşünüyorsanız, JavaScript çerçevesi, evi inşa etmek için kullanılan ayrıntılı plandır.
JavaScript çerçeveleri için bazı örnek kullanım durumları şunlardır:
Web uygulaması ve mobil uygulama geliştirme
AngularJS; e-ticaret uygulamaları, gerçek zamanlı uygulamalar ve video uygulamaları gibi web uygulamalarının geliştirilmesini ve test edilmesini basitleştiren bir çerçevedir. React Native, iOS ve Android için yerel olarak oluşturulmuş mobil uygulama geliştirmeyi destekleyen başka bir çerçevedir.
Uyumlu web geliştirme
Uyumlu web siteleri, herhangi bir cihazda tutarlı bir kullanıcı deneyimi sunar. Örneğin, mobil ve tablet ekranları, masaüstü ve dizüstü bilgisayar ekranlarından daha küçüktür. Web sitesinin, örneğin web sitesinin uçlarını kesmeden, daha küçük ekranda bile verileri doğru bir şekilde görüntülemesini ve sunmasını istiyorsunuz. Geliştiriciler, Bootstrap ve Ember.js gibi çerçeveleri kullanarak uyumlu tasarımdan yararlanabilir ve bir web sitesinin görünümünü farklı platformlarda kolayca özelleştirebilir.
Sunucu tarafı uygulama geliştirme
Node.js, JavaScript kodunu bir tarayıcının dışında çalıştıran, sunucu tarafı, açık kaynaklı bir JavaScript çerçevesidir. Geliştiriciler bu çerçeveyi ölçeklenebilir, hızlı ve güvenilir ağ tabanlı sunucu tarafı uygulamaları oluşturmak için kullanır. HTTP isteklerini ve veri akışlarını işleyebilir, dosya sistemlerini destekleyebilir ve aynı anda birden çok arka uç sürecini yönetebilir.
HTML ve CSS nedir?
Köprü Metni Biçimlendirme Dili (HTML) ve Geçişli Stil Sayfaları (CSS), geliştiricilerin ön uç geliştirmede kullandığı diğer iki programlama dilidir. HTML, çoğu web sayfasının temel yapı taşıdır. Tüm paragraflar, bölümler, resimler, başlıklar ve metin HTML ile yazılmıştır. İçerik, HTML'de yazıldığı sırayla web sitesinde görünür.
CSS, HTML içeriğimize stil uygulamak için kullandığımız bir stil kuralları dilidir. Arka plan renkleri, yazı tipleri, sütunlar ve kenarlıklar gibi web sitesi öğelerini tasarlamak için kullanabilirsiniz.
HTML vs. CSS vs. JavaScript
Her üç dil de herhangi bir sitede olumlu bir kullanıcı deneyimi oluşturmak için birlikte çalışır. HTML ve CSS, temel olarak statik içeriği değiştirebilirken, içeriği dinamik olarak güncellemek için istemci tarafı JavaScript koduyla da entegre olabilirler.
Örneğin, bir HTML sayfasındaki komut dosyası kod blogu, içinde JavaScript içerebilir. Tarayıcı, HTML sayfası tarayıcıya yüklendiğinde hem HTML'yi hem de dahili JavaScript kodunu işleyebilir.JavaScript’in avantajları nelerdir?
Kolayca öğrenme ve kullanma
Platform bağımsızlığı kazanma
Diğer programlama dillerinden farklı olarak, JavaScript'i herhangi bir web sayfasına ekleyebilir ve onu diğer birçok web geliştirme çerçevesi ve dili ile kullanabilirsiniz. JavaScript kodunu yazdıktan sonra herhangi bir makinede çalıştırabilirsiniz. Böylece JavaScript, uygulama geliştirme platformunu bağımsız hale getirir.
Sunucu yükü azaltma
JavaScript'i sunucu yükünü ve ağ tıkanıklığını azaltmak için kullanabilirsiniz çünkü mantıksal işlemleri çalıştırabilir ve sunucunun çalışmasının çoğunu istemcinin kendisinde yapabilir. Örneğin, bir kayıt formu doldurma sürecini düşünün. JavaScript, cep telefonu alanına 10 basamaklı bir sayı girip girmediğinizi hızlı bir şekilde kontrol eder. Bu istekler sunucuya gönderilirse sayfanız her hata için yeniden yüklenir ve kayıt işlemini çok yavaş ve sıkıcı hale getirir.
Kullanıcı arabirimi güncelleme
JavaScript, karmaşık bilgileri bulmayı ve işlemeyi kolaylaştıran zarif web siteleri oluşturur. Geliştiriciler, işlevselliği ve okunabilirliği genişletmek ve web sitesi kullanıcı etkileşimini daha verimli hale getirmek için JavaScript'i uygular.
Eş zamanlılığı destekleme
JavaScript birkaç farklı talimat setini paralel olarak çalıştırabilir. Arka uçta, Node.js aynı miktarda bant genişliği tüketmeden yüksek düzeyde ölçeklendirilmiş sunucu yanıtlarını ele alabilir ve işleyebilir.
JavaScript’in sınırlamaları nelerdir?
Programlama dilleri, gerçek veri değerleri için değişkenleri yer tutucu olarak kullanır. Örneğin, bir kod blogunda geliştirici x=5 ve y=x+1 yazabilir. Kod çalıştığında, bilgisayar üzerlerinde işlevler gerçekleştirmek için x ve y'yi sırasıyla 5 ve 6'ya otomatik olarak değiştirecektir. Veriler, metin dizisi, sayılar veya tarih gibi çeşitli türlerde olabilir. Bu nedenle çoğu programlama dili değişken türünü tanımlamanıza izin verir. Değişken tipi tanımlandıktan sonra değişmez ve sayıları dize değişkenlerinde saklayamazsınız.
Örneğin, programa x ve y'nin sayı olduğunu söyler ve ardından x+y işlemini gerçekleştirirseniz bilgisayar iki sayı bekleyip toplamasını bilecektir. Öte yandan, x ve y'yi dizeler olarak tanımlarsanız + operatörü daha uzun bir kelime oluşturmak için iki dizeyi birbirine ekler.
Zayıf yazılmış dil
JavaScript, zayıf yazılmış bir dildir, yani programcının değişken türünü tanımlamasına izin vermez. Bir değişken, çalışma zamanında herhangi bir veri türünü depolayabilir ve işlemler, değişken türünü varsayar. Sonuç, başka bir veri türüne de dönüştürülebilir; örneğin, bir işlem sonucu 5 sayısı yerine "5" dizesi olarak döndürebilir. Bu, yanlışlıkla kodlama hatalarına ve tip hataları nedeniyle kodda hatalara neden olabilir.
TypeScript nedir?
TypeScript, söz dizimine türler ekleyerek JavaScript'i geliştiren bir programlama dilidir. TypeScript, kod düzenleyici araçlarının kodlama hatalarını erken yakalayabilmesi için JavaScript’e ek söz dizimi ekler. Aynı zamanda TypeScript kodu JavaScript’e dönüşür ve JavaScript ile aynı faydaları sağlar. Ayrıca hem uygulamalarda hem de JavaScript çerçeveleri ve kitaplıklarıyla çalışır.
JavaScript için AWS SDK nedir?
JavaScript için AWS SDK, AWS hizmetleriyle entegre olan bir dizi açık kaynaklı, kullanımı ücretsiz JavaScript kitaplığıdır. API geliştirmeyi, üst düzey soyutlamaları ve üç tür uygulamayı desteklerler:
- Tarayıcı için JavaScript
- Sunucu için Node.js
- Mobil geliştirme için React Native
JavaScript için AWS SDK, tamamen TypeScript'te yazılır ve ardından JavaScript'te derlenir. Böylece, geriye dönük uyumluluk konusunda endişelenmenize gerek kalmadan TypeScript'in tüm avantajlarından yararlanırsınız.
Kod örneklerini ve geçiş kılavuzunu okuyarak veya doğrudan GitHub'dan yükleyerek Java için AWS SDK'yı kullanmaya başlayabilirsiniz.
JavaScript için AWS Amplify nedir?
AWS Amplify, ön uç web ve mobil geliştiricilerin AWS'de hızlı ve kolay bir şekilde tam yığın uygulamalar oluşturmasına olanak tanıyan amaca yönelik araçlar ve özellikler kümesidir. Amplify açık kaynaklı istemci kitaplıkları, bulut destekli operasyonların farklı kategorileri arasında kullanım durumu merkezli, kullanımı kolay arabirimler sağlar. Amplify JavaScript kütüphaneleri , React, React Native, Angular, Ionic ve Vue.js gibi farklı web ve mobil çerçeveler için desteklenir. JavaScript"i Yükseltmek için Başlarken kılavuzunu doldurarak başlayabilirsiniz..