JavaScript Ders Notu-3
JavaScript Ders Notu-3
1. Giriş
Temel JavaScript konuları; değişkenler, veri tipleri, operatörler, koşullar, döngüler, fonk-
siyonlar, diziler, nesneler ve DOM işlemleri etrafında şekillenir. Bu yapıların öğrenilme-
sinden sonra JavaScript daha güçlü ve daha düzenli biçimde kullanılmaya başlanır. Bu
aşamada veri işleme, hata yönetimi, asenkron programlama, veri saklama, modüler yapı
ve nesne yönelimli yaklaşım gibi konular öne çıkar.
Bu ders notunda, temel konuların ardından ele alınan JavaScript başlıkları açıklanmakta
ve örnek kodlarla gösterilmektedir.
JavaScript’te diziler yalnızca veri saklamak için değil, aynı zamanda verileri dönüştürmek,
filtrelemek ve işlemek için de kullanılır. Bu amaçla çeşitli dizi metotları bulunur.
2.1. forEach()
2.2. map()
map() her eleman üzerinde işlem yapar ve yeni bir dizi döndürür.
1 let sayilar = [1 , 2 , 3 , 4];
2 let kareler = sayilar . map ( function ( sayi ) {
3 return sayi * sayi ;
4 }) ;
5
1
JavaScript Ders Notları
2.3. filter()
2.4. find()
some() en az bir elemanın koşulu sağlayıp sağlamadığını kontrol eder. every() tüm ele-
manların koşulu sağlayıp sağlamadığını kontrol eder.
1 let sayilar = [2 , 4 , 6 , 8];
2
2
JavaScript Ders Notları
5 }) ) ;
6
2.6. reduce()
3
JavaScript Ders Notları
Gerçek uygulamalarda veriler çoğu zaman nesneler ve nesne dizileri biçiminde tutulur.
1 let ogrenci = {
2 ad : " Ayse " ,
3 bolum : " Bilgisayar Muhendisligi " ,
4 adres : {
5 sehir : " Malatya " ,
6 ulke : " Turkiye "
7 }
8 };
9
4
JavaScript Ders Notları
1 let ogrenciler = [
2 { ad : " Ayse " , not : 70 } ,
3 { ad : " Mehmet " , not : 85 } ,
4 { ad : " Zeynep " , not : 90 }
5 ];
6
1 let kitap = {
2 ad : " JavaScript " ,
3 sayfa : 350 ,
4 yazar : " Ali Yilmaz "
5 };
6
5. Destructuring
Destructuring, dizi ve nesnelerdeki verileri daha kısa ve düzenli biçimde değişkenlere ayır-
mayı sağlar.
1 let renkler = [" kirmizi " , " mavi " , " yesil "];
2
5
JavaScript Ders Notları
1 let kullanici = {
2 ad : " Ahmet " ,
3 yas : 22 ,
4 sehir : " Malatya "
5 };
6
9 console . log ( ad ) ;
10 console . log ( yas ) ;
11 console . log ( sehir ) ;
Üç nokta (...) işareti JavaScript’te hem spread hem rest amacıyla kullanılır.
6
JavaScript Ders Notları
8 return toplam ;
9 }
10
7. Scope ve Hoisting
7.1. Scope
Scope, bir değişkenin erişilebilir olduğu alanı ifade eder. JavaScript’te genel olarak global
scope, function scope ve block scope bulunur.
1 let globalDegisken = " Genel alan ";
2
3 function test () {
4 let yerelDegisken = " Fonksiyon alani ";
5 console . log ( globalDegisken ) ;
6 console . log ( yerelDegisken ) ;
7 }
8
9 test () ;
7
JavaScript Ders Notları
7.3. Hoisting
5 selamla () ;
8. Callback Fonksiyonları
Bir fonksiyonun başka bir fonksiyona parametre olarak gönderilmesine callback yaklaşımı
denir.
1 function islemYap (a , b , callback ) {
2 return callback (a , b ) ;
3 }
4
5 function topla (x , y ) {
6 return x + y ;
7 }
8
9. Hata Yönetimi
9.1. try-catch
1 try {
2 let sonuc = 10 / 0;
3 console . log ( sonuc ) ;
4 } catch ( hata ) {
8
JavaScript Ders Notları
9.2. finally
1 try {
2 console . log (" Islem basladi ") ;
3 } catch ( hata ) {
4 console . log ( hata ) ;
5 } finally {
6 console . log (" Islem tamamlandi ") ;
7 }
9.3. throw
9
JavaScript Ders Notları
Temel DOM işlemlerinden sonra daha esnek seçim ve düzenleme işlemleri yapılabilir.
10
JavaScript Ders Notları
13.1. localStorage
11
JavaScript Ders Notları
JSON, veri taşımak ve saklamak için kullanılan metin tabanlı bir formattır.
1 let kisi = {
2 ad : " Mehmet " ,
3 yas : 25
4 };
5
Bazı işlemler hemen tamamlanmaz. Özellikle internetten veri alma ve zamanlayıcı işlemleri
asenkron yapı ile ilgilidir.
15.1. setTimeout
12
JavaScript Ders Notları
3 setTimeout ( function () {
4 console . log ("2 saniye sonra calisti ") ;
5 } , 2000) ;
6
15.2. Promise
4 if ( basarili ) {
5 resolve (" Islem basarili ") ;
6 } else {
7 reject (" Islem basarisiz ") ;
8 }
9 }) ;
10
11 kontrol
12 . then ( function ( sonuc ) {
13 console . log ( sonuc ) ;
14 })
15 . catch ( function ( hata ) {
16 console . log ( hata ) ;
17 }) ;
1 function veriGetir () {
2 return new Promise ( function ( resolve ) {
3 setTimeout ( function () {
4 resolve (" Veri alindi ") ;
5 } , 2000) ;
6 }) ;
7 }
8
13
JavaScript Ders Notları
14 calistir () ;
JavaScript ile internet üzerindeki servislerden veri alınabilir. Bu işlem için yaygın olarak
fetch() kullanılır.
1 fetch (" https :// jsonplaceholder . typicode . com / users ")
2 . then ( function ( response ) {
3 return response . json () ;
4 })
5 . then ( function ( data ) {
6 console . log ( data ) ;
7 })
8 . catch ( function ( error ) {
9 console . log (" Hata :" , error ) ;
10 }) ;
17. Modüller
Büyük uygulamalarda kod tek bir dosyada tutulmaz. Kodlar farklı dosyalara ayrılır ve
modüler yapı oluşturulur.
17.1. export
17.2. import
14
JavaScript Ders Notları
7 bilgiGoster () {
8 console . log ( this . ad + " - " + this . yas ) ;
9 }
10 }
11
18.1. Kalıtım
1 class Kisi {
2 constructor ( ad ) {
3 this . ad = ad ;
4 }
5
6 selamVer () {
7 console . log (" Merhaba " + this . ad ) ;
8 }
9 }
10
15
JavaScript Ders Notları
15 }
16 }
17
18 let ogrenci = new Ogrenci (" Zeynep " , " Bilgisayar Muhendisligi ") ;
19 ogrenci . selamVer () ;
DOM olaylarında bir olay önce hedef elemanda başlar, sonra üst elemanlara doğru yayı-
labilir. Bu davranışa event bubbling adı verilir.
1 document . querySelector (". dis ") . addEventListener (" click " , function
() {
2 console . log (" Dis kutu tiklandi ") ;
3 }) ;
4
Birden fazla benzer eleman için tek merkezden olay yönetimi yapıldığında event delegation
yaklaşımı kullanılır.
1 document . querySelector (" ul ") . addEventListener (" click " , function (
event ) {
2 if ( event . target . tagName === " LI ") {
3 console . log ( event . target . textContent ) ;
4 }
5 }) ;
JavaScript uygulamaları modern araçlarla birlikte geliştirilir. Paket yönetimi, modül yapısı
ve derleme süreçleri bu aşamada önem kazanır.
16
JavaScript Ders Notları
20.1. npm
20.3. Vite
Modern ön yüz uygulamalarında hızlı geliştirme ortamı sağlamak için Vite kullanılabilir.
1 npm create vite@latest
TypeScript, JavaScript üzerine tip sistemi ekleyen bir yapıdır. Büyük projelerde veri tip-
lerinin açık biçimde belirtilmesi, hata yakalamayı kolaylaştırır.
1 let ad : string = " Ahmet ";
2 let yas : number = 22;
3
17
JavaScript Ders Notları
• Yapılacaklar listesi
• Sayaç uygulaması
Temel JavaScript konularından sonra ilerleyen konu akışı aşağıdaki biçimde özetlenebilir:
4. Destructuring
6. Scope ve hoisting
7. Callback fonksiyonları
8. Hata yönetimi
18
JavaScript Ders Notları
16. Modüller
24. Özet
Temel JavaScript konularından sonra dilin daha güçlü özellikleri ve modern kullanım bi-
çimleri ele alınır. Bu aşamada veri işleme, nesne yapıları, modern sözdizimi, hata yönetimi,
veri saklama, asenkron programlama, modüler yapı ve nesne yönelimli yaklaşım önemli
başlıklar hâline gelir.
Bu konuların öğrenilmesiyle birlikte JavaScript yalnızca küçük örneklerin yazıldığı bir dil
olmaktan çıkar; veri işleyen, internetten bilgi alan, kullanıcı etkileşimlerine cevap veren
ve daha büyük ölçekli uygulamalar üreten bir geliştirme ortamına dönüşür.
19