0% found this document useful (0 votes)
16 views11 pages

JavaScript Programlama Rehberi

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views11 pages

JavaScript Programlama Rehberi

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

JavaScript Programlama Rehberi

Kapsamlı JavaScript Eğitim Dokümanı

Bölüm 1: JavaScript’e Giriş ve Temel Kavramlar


JavaScript, web sayfalarına etkileşim eklemek için kullanılan bir programlama dilidir.
1995 yılında Brendan Eich tarafından geliştirilmiştir ve günümüzde web geliştirmenin
vazgeçilmez bir parçası haline gelmiştir.

JavaScript’in Tarihsel Gelişimi


JavaScript’in evrimi şu aşamalardan geçmiştir: - 1995: Netscape Navigator için ilk sürüm
- 1997: ECMAScript 1 standardı - 2009: ECMAScript 5 (ES5) - Modern JavaScript’in temeli
- 2015: ECMAScript 6 (ES6) - Büyük güncelleme - 2020: ECMAScript 2020 - Güncel stan-
dart

JavaScript’in Kullanım Alanları


• Web sayfalarında dinamik içerik
• Sunucu tarafında ([Link])
• Mobil uygulama geliştirme (React Native)
• Masaüstü uygulamalar (Electron)
• Oyun geliştirme

Bölüm 2: Değişkenler ve Veri Tipleri

Değişken Tanımlama
// ES5
var isim = "Ahmet";

// ES6+
let yas = 25;
const PI = 3.14;

Temel Veri Tipleri


JavaScript’te 7 temel veri tipi bulunur:
1. String: Metin değerleri
2. Number: Sayısal değerler
3. Boolean: true/false
4. Null: Boş değer
5. Undefined: Tanımlanmamış
6. Symbol: ES6 ile gelen benzersiz değerler
7. BigInt: Büyük tam sayılar

1
Tip Dönüşümleri
// String'e dönüştürme
let sayi = 123;
let metin = String(sayi);

// Number'a dönüştürme
let yazi = "456";
let rakam = Number(yazi);

// Boolean'a dönüştürme
let deger = 1;
let mantiksal = Boolean(deger);

Bölüm 3: Operatörler ve İfadeler

Aritmetik Operatörler

Operatör Açıklama Örnek


+ Toplama 5+3=8
- Çıkarma 5-3=2
* Çarpma 5 * 3 = 15
/ Bölme 15 / 3 = 5
% Mod Alma 15 % 4 = 3
** Üs Alma 2 ** 3 = 8

Karşılaştırma Operatörleri
let a = 5, b = 10;

[Link](a == b); // false


[Link](a != b); // true
[Link](a > b); // false
[Link](a < b); // true
[Link](a >= 5); // true
[Link](b <= 10); // true

// Strict equality (tip ve değer kontrolü)


[Link](5 === "5"); // false
[Link](5 !== "5"); // true

Mantıksal Operatörler
// AND (&&) - Her iki koşul da doğru olmalı
if (yas > 18 && uyelik == true) {
[Link]("Erişim verildi");
}

// OR (||) - Koşullardan biri doğru olmalı


if (haftaSonu || resmiTatil) {
[Link]("Dinlenme zamanı");
}

2
// NOT (!) - Koşulu tersine çevirir
if (!kullaniciGiris) {
[Link]("Lütfen giriş yapın");
}

Bölüm 4: Kontrol Yapıları

If-Else Yapısı
let not = 85;

if (not >= 90) {


[Link]("AA - Mükemmel");
} else if (not >= 80) {
[Link]("BA - Çok İyi");
} else if (not >= 70) {
[Link]("BB - İyi");
} else if (not >= 60) {
[Link]("CB - Orta");
} else if (not >= 50) {
[Link]("CC - Geçer");
} else {
[Link]("FF - Kaldı");
}

Switch-Case Yapısı
let gun = new Date().getDay();
let gunAdi;

switch (gun) {
case 0:
gunAdi = "Pazar";
break;
case 1:
gunAdi = "Pazartesi";
break;
case 2:
gunAdi = "Salı";
break;
case 3:
gunAdi = "Çarşamba";
break;
case 4:
gunAdi = "Perşembe";
break;
case 5:
gunAdi = "Cuma";
break;
case 6:
gunAdi = "Cumartesi";
break;
default:

3
gunAdi = "Geçersiz gün";
}

[Link]("Bugün: " + gunAdi);

Ternary Operatör
let yas = 20;
let durum = yas >= 18 ? "Yetişkin" : "Çocuk";

// Çoklu ternary
let puan = 75;
let sonuc = puan >= 90 ? "Mükemmel" :
puan >= 70 ? "İyi" :
puan >= 50 ? "Orta" : "Zayıf";

Bölüm 5: Döngüler

For Döngüsü
// Temel for döngüsü
for (let i = 0; i < 5; i++) {
[Link]("Iterasyon: " + i);
}

// Sonsuz döngü (dikkatli kullanın)


// for (;;) {
// [Link]("Sonsuz döngü");
// }

// For...of döngüsü (ES6)


let dizi = [1, 2, 3, 4, 5];
for (let eleman of dizi) {
[Link](eleman);
}

// For...in döngüsü (objeler için)


let obje = {a: 1, b: 2, c: 3};
for (let anahtar in obje) {
[Link](anahtar + ": " + obje[anahtar]);
}

While Döngüsü
// While döngüsü
let sayac = 0;
while (sayac < 5) {
[Link]("While: " + sayac);
sayac++;
}

// Do-while döngüsü
let i = 0;

4
do {
[Link]("Do-while: " + i);
i++;
} while (i < 5);

Döngü Kontrol İfadeleri


// Break kullanımı
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // Döngüyü tamamen sonlandırır
}
[Link](i);
}

// Continue kullanımı
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // Mevcut iterasyonu atlar
}
[Link]("Tek sayı: " + i);
}

Bölüm 6: Fonksiyonlar

Fonksiyon Tanımlama
// Function declaration
function selamVer(isim) {
return "Merhaba, " + isim + "!";
}

// Function expression
const topla = function(a, b) {
return a + b;
};

// Arrow function (ES6)


const carp = (a, b) => a * b;

// Immediately Invoked Function Expression (IIFE)


(function() {
[Link]("Bu fonksiyon hemen çalıştı");
})();

Parametreler ve Varsayılan Değerler


// Varsayılan parametreler (ES6)
function kisiBilgisi(isim = "Misafir", yas = 0) {
return `${isim}, ${yas} yaşında`;
}

// Rest parameters

5
function toplam(...sayilar) {
return [Link]((toplam, sayi) => toplam + sayi, 0);
}

[Link](toplam(1, 2, 3, 4, 5)); // 15

Callback Fonksiyonlar
function islemYap(a, b, callback) {
return callback(a, b);
}

function toplama(x, y) {
return x + y;
}

function carpma(x, y) {
return x * y;
}

[Link](islemYap(5, 3, toplama)); // 8
[Link](islemYap(5, 3, carpma)); // 15

Bölüm 7: Diziler ve Dizi Metodları

Dizi Oluşturma ve Temel İşlemler


// Dizi oluşturma
let meyveler = ["Elma", "Armut", "Muz"];
let sayilar = new Array(1, 2, 3, 4, 5);

// Dizi elemanlarına erişim


[Link](meyveler[0]); // "Elma"
[Link]([Link]); // 3

// Eleman ekleme/çıkarma
[Link]("Portakal"); // Sonuna ekle
[Link](); // Sondan çıkar
[Link]("Çilek"); // Başına ekle
[Link](); // Baştan çıkar

Dizi Metodları
let numbers = [1, 2, 3, 4, 5];

// map - her elemanı dönüştürür


let kareler = [Link](n => n * n);

// filter - koşula uyanları filtreler


let tekler = [Link](n => n % 2 !== 0);

// reduce - diziyi tek değere indirger


let toplam = [Link]((acc, n) => acc + n, 0);

6
// find - koşula uyan ilk elemanı bulur
let bulunan = [Link](n => n > 3);

// some - koşula uyan en az bir eleman var mı


let varMi = [Link](n => n > 5);

// every - tüm elemanlar koşula uyuyor mu


let hepsi = [Link](n => n > 0);

Çok Boyutlu Diziler


// Matris oluşturma
let matris = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];

// Matris elemanlarına erişim


[Link](matris[1][2]); // 6

// Matris işlemleri
for (let i = 0; i < [Link]; i++) {
for (let j = 0; j < matris[i].length; j++) {
[Link](`matris[${i}][${j}] = ${matris[i][j]}`);
}
}

Bölüm 8: Nesneler (Objects)

Nesne Oluşturma ve Erişim


// Object literal
let kisi = {
ad: "Ahmet",
yas: 30,
meslek: "Mühendis",
selamVer: function() {
return "Merhaba, ben " + [Link];
}
};

// Erişim yöntemleri
[Link]([Link]); // dot notation
[Link](kisi["yas"]); // bracket notation
[Link]([Link]()); // method çağırma

// Property ekleme/silme
[Link] = "ahmet@[Link]";
delete [Link];

7
Constructor Fonksiyonlar
// Constructor function
function Kisi(ad, yas, meslek) {
[Link] = ad;
[Link] = yas;
[Link] = meslek;
[Link] = function() {
return `${[Link]}, ${[Link]} yaşında, ${[Link]}`;
};
}

// Yeni nesne oluşturma


let kisi1 = new Kisi("Ayşe", 25, "Doktor");
let kisi2 = new Kisi("Mehmet", 35, "Öğretmen");

[Link]([Link]());

ES6 Classes
class Araba {
constructor(marka, model, yil) {
[Link] = marka;
[Link] = model;
[Link] = yil;
}

bilgileriGoster() {
return `${[Link]} ${[Link]} ${[Link]}`;
}

// Getter ve Setter
get yas() {
return new Date().getFullYear() - [Link];
}
}

let araba1 = new Araba("Toyota", "Corolla", 2020);


[Link]([Link]());
[Link]("Araba yaşı: " + [Link]);

Bölüm 9: Hata Yönetimi

Try-Catch-Finally
try {
// Riskli kod
let sonuc = riskyIslem();
[Link]("Sonuç: " + sonuc);
} catch (hata) {
// Hata durumunda
[Link]("Hata oluştu: " + [Link]);
} finally {

8
// Her durumda çalışır
[Link]("İşlem tamamlandı");
}

Özel Hata Sınıfları


class OzelHata extends Error {
constructor(mesaj, kod) {
super(mesaj);
[Link] = "OzelHata";
[Link] = kod;
}
}

function dogrula(yas) {
if (yas < 18) {
throw new OzelHata("Yaş yetersiz", 1001);
}
return true;
}

try {
dogrula(15);
} catch (hata) {
if (hata instanceof OzelHata) {
[Link](`Özel hata: ${[Link]} (Kod: ${[Link]})`);
} else {
[Link]("Genel hata: " + [Link]);
}
}

Bölüm 10: Modern JavaScript Özellikleri (ES6+)

Destructuring
// Dizi destructuring
let [bir, iki, ...geriKalan] = [1, 2, 3, 4, 5];

// Obje destructuring
let {ad, yas, meslek} = kisi;

// Fonksiyon parametrelerinde
function kisiBilgisi({ad, yas = 25}) {
return `${ad}, ${yas} yaşında`;
}

Spread Operator
// Dizilerde
let dizi1 = [1, 2, 3];
let dizi2 = [4, 5, 6];
let birlesik = [...dizi1, ...dizi2];

9
// Objelerde
let obje1 = {a: 1, b: 2};
let obje2 = {c: 3, d: 4};
let birlesikObje = {...obje1, ...obje2};

// Fonksiyon çağrılarında
let sayilar = [1, 2, 3, 4, 5];
let enBuyuk = [Link](...sayilar);

Template Literals
let isim = "Ahmet";
let yas = 30;

// Çok satırlı string


let mesaj = `
Merhaba ${isim},

${yas} yaşındasınız.
Bugün: ${new Date().toLocaleDateString()}
`;

[Link](mesaj);

Promises ve Async/Await
// Promise
function veriGetir() {
return new Promise((resolve, reject) => {
setTimeout(() => {
[Link]() > 0.5 ? resolve("Başarılı") : reject("Hata");
}, 1000);
});
}

// Async/Await
async function islemYap() {
try {
let sonuc = await veriGetir();
[Link]("Sonuç: " + sonuc);
} catch (hata) {
[Link]("Hata: " + hata);
}
}

islemYap();

Sonuç
JavaScript, modern web geliştirmenin temel taşıdır. Bu rehber, JavaScript’in temel ve orta
düzey konseptlerini kapsamlı şekilde ele almaktadır. Pratik yaparak ve projeler geliştir-
erek bu bilgileri pekiştirebilirsiniz.

10
Önerilen Kaynaklar
• MDN Web Docs: JavaScript
• [Link]
• ECMAScript Specification
• Stack Overflow JavaScript etiketleri

Bu doküman JavaScript programlama dili hakkında temel ve orta düzey bilgiler içermektedir.
Düzenli olarak güncellenecektir.

11

You might also like