Merhabalar, eğitime giriş yaparken öncelikle JavaScript nedir, biz neyi öğrenmeye çalışıyoruz buna bir bakalım istiyorum.

Aşağıdaki içeriği en altta kaynak olarak verdiğim linkten buraya taşıdım. Detaylı ve güzel anlatılmış.

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 öge 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:

İçeriği dinamik olarak güncelleme

Web sitenizin kullanıcılarının içeriğini dinamik olarak güncellemesine olanak tanıyan etkileşimli özellikler oluşturmak için JavaScript işlevlerini kullanabilirsiniz. İşte bu etkileşimli özelliklere birkaç örnek:

·   Bir düğmeye tıklayarak bilgileri gösterin veya gizleyin

·   Telefon numaraları ve e-posta adresleri gibi kullanıcı tarafından girilen form verilerini doğrulayın

   Fareyle üzerine gelindiğinde web sayfası düğmesinin rengini değiştirin

·   Açılır pencere reklamlar oluşturun

·   Bir görüntüyü yakınlaştırın veya uzaklaştırın

·   Bir web sayfasında ses ve video oynatın

Web uygulamaları ve mobil uygulamalar oluşturun

JavaScript, web ve mobil uygulama geliştirme için JavaScript çerçeveleri adı verilen yerleşik kod kitaplıkları koleksiyonuna sahiptir. Geliştiriciler bir kez oluşturulabilen ve herhangi bir cihazda çalıştırılabilen platformdan bağımsız uygulamalar oluşturmak için birçok açık kaynaklı veya ücretsiz kullanılabilir çerçeve kullanabilir. Ayrıca JavaScript kodu hafiftir ve daha az işlem gerektirir, bu nedenle geliştiriciler mobil uygulamalar oluşturmak için bunu kolayca kullanabilir.

Sunucu taraflı uygulamalar geliştirme

Geliştiriciler modern uygulamalar için sağlam arka uç altyapısı oluşturmak için JavaScript’i kullanır. Örneğin, sunucu tarafı JavaScript kitaplıkları, istemci ile sunucu arasında sürekli iletişim için yerleşik desteğe sahip oldukları için akış uygulamalarını daha verimli hale getirir. Benzer şekilde, girdi ve çıktı açısından yoğun olan paylaşılan belge düzenleme gibi çevrim içi işbirliği araçları, araçlar JavaScript ile yazıldığında daha iyi çalışır.

Oyun geliştirme

JavaScript, geliştiricilerin tarayıcı oyunları oluşturmak için kullanabilecekleri kullanışlı bir programlama dilidir. Bazı JavaScript kod kitaplıkları, geliştiricilerin uygulanabilir bir oyun oluşturmasına ve ardından oyunu atomik olarak dışa aktarmasına ve farklı web ve mobil oyun platformlarına dağıtmasına olanak tanır. Geliştiriciler ayrıca 2D ve 3D animasyonlu görüntülerin ve grafiklerin karmaşık görsel oluşturma desteğine sahiptir.

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 ögelerini 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’yi 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

Tüm web geliştirme, web sitesi ziyaretçilerinin birisiyle iletişim kurması, ürün sipariş etmesi ve etkinliklere kaydolması için formlar kullanır. wForms, LiveValidation, Validanguage ve qForms gibi bazı JavaScript kitaplıkları, form doğrulama, düzen, koşullar ve dönüştürme dahil olmak üzere form işlevlerini basitleştirir.

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.

JavaScript’in avantajları nelerdir?

Kolayca öğrenme ve kullanma

JavaScript’in söz dizimi, Java programlama dilinden esinlenmiştir, öğrenmesi ve kodlaması kolaydır. Geliştiriciler, istemci tarafı komut dosyası oluşturma için neredeyse her web sitesinde ve mobil uygulamada JavaScript kullanır. Node.js, son on yılda arka uç kodlaması için de önemli bir popülerlik kazandı. Birçok büyük akış ve video platformu Node.js’de kodlanmıştır.

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ı işleyebilir 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; 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 uygulamalarda ve JavaScript çerçeveleri ve kitaplıklarıyla çalışır.

Kaynak : Amazon JavaScript Nedir


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.