Javascript

Javascript

JavaScript, web geliştirme dünyasının temel taşlarından biri olup, dinamik ve etkileşimli kullanıcı arayüzleri oluşturmak için kullanılan en popüler programlama dillerinden biridir. Hem frontend hem de backend tarafında (Node.js ile) kullanılabilmesi, JavaScript’i tam kapsamlı bir çözüm haline getirir.

Bu kategoride, JavaScript’in temellerinden başlayarak ileri düzey konulara kadar kapsamlı içerikler paylaşılacaktır. Ele alınacak başlıca konular şunlardır:

1. JavaScript’e Giriş ve Temeller
1.1. JavaScript Nedir? ve Temel Özellikleri
1.2. JavaScript ile HTML ve CSS Entegrasyonu
1.3. JavaScript Çalışma Ortamları (Tarayıcı, Node.js, Deno vs.)
1.4. JavaScript Syntax ve Best Practices
1.5. Değişkenler ve Veri Tipleri (Primitive & Reference Types)
1.6. Type Coercion ve Tür Dönüşümleri
1.7. Operatörler (Aritmetik, Karşılaştırma, Mantıksal, Bitwise vs.)
1.8. Koşullu İfadeler (if-else, switch-case)
1.9. Döngüler (for, while, do-while, forEach, for-in, for-of)
1.10. Fonksiyonlar (Function Declaration, Expression, Arrow Functions)

2. Nesne Yönelimli Programlama (OOP) ve Fonksiyonel Programlama
2.1. JavaScript’te Nesneler (Objects) ve this Kullanımı
2.2. Constructor Functions ve Prototip Mirası (Prototype Inheritance)
2.3. ES6 Class Yapısı ve Extends ile Kalıtım (Inheritance)
2.4. Encapsulation, Polymorphism ve Composition Teknikleri
2.5. Object-Oriented vs Functional Programming Yaklaşımları
2.6. Pure Functions ve Immutable State Kavramı
2.7. Higher-Order Functions ve Callback Functions Kullanımı
2.8. Currying, Partial Application ve Composition Teknikleri

3. ES6+ Modern JavaScript Konuları
3.1. Let, Const ve Var Arasındaki Farklar
3.2. Template Literals (`), Spread & Rest Operator (…) Kullanımı
3.3. Destructuring (Array ve Object Destructuring)
3.4. Default Parameters ve Optional Chaining (?.)
3.5. Modules (import, export) ile JavaScript Modülerliği
3.6. Promises ve Async/Await ile Asenkron Programlama
3.7. Fetch API ile Veri Çekme ve JSON İşleme
3.8. Set, Map ve WeakMap Veri Yapıları
3.9. Symbol ve Iterators Kullanımı

4. JavaScript DOM Manipülasyonu ve Event Handling
4.1. DOM Nedir? ve Element Seçme Yöntemleri (getElementById, querySelector)
4.2. DOM Olayları (Event Listeners, Bubbling & Capturing, Delegation)
4.3. Form İşlemleri ve Input Eventleri
4.4. Element Oluşturma, Silme ve Güncelleme
4.5. CSS ile JavaScript Entegrasyonu (classList, style)
4.6. Web Storage (LocalStorage, SessionStorage, Cookies)
4.7. Intersection Observer API ile Lazy Loading

5. Asenkron Programlama ve API Kullanımı
5.1. Callbacks, Promises ve Async/Await Farkları
5.2. Fetch API ve Axios ile HTTP İstekleri Gönderme
5.3. JSON Handling ve Response Data Manipülasyonu
5.4. WebSocket API Kullanımı
5.5. Event Loop ve JavaScript’in Asenkron Çalışma Mantığı
5.6. Async Error Handling (Try-Catch & .catch())
5.7. Throttling ve Debouncing Teknikleri

6. JavaScript ile Veri Yapıları ve Algoritmalar
6.1. Array ve Object Manipülasyonu (Map, Filter, Reduce, Sort)
6.2. Stack, Queue ve Linked List Veri Yapıları
6.3. Hash Table, Set ve Map Kullanımı
6.4. Graph ve Tree Veri Yapıları
6.5. Binary Search ve Rekürsif Fonksiyonlar
6.6. Büyük Veri Setlerinde Performanslı Çalışma Teknikleri

7. JavaScript Framework ve Kütüphaneleri
7.1. JavaScript Framework Nedir? (React, Vue, Angular Karşılaştırması)
7.2. React.js Temelleri ve Hooks Kullanımı
7.3. Vue.js Temelleri ve Vuex ile State Yönetimi
7.4. Angular Temelleri ve RxJS Kullanımı
7.5. Node.js ve Express.js ile Backend API Geliştirme
7.6. Electron.js ile Masaüstü Uygulamalar Geliştirme

8. Performans Optimizasyonu ve İleri Seviye JavaScript Konuları
8.1. Event Delegation ile Performans Optimizasyonu
8.2. Virtual DOM Nedir? ve Nasıl Çalışır?
8.3. Code Splitting ve Lazy Loading Kullanımı
8.4. Memory Leaks (Hafıza Sızıntıları) ve Garbage Collection
8.5. Service Workers ve Progressive Web Apps (PWA)
8.6. Web Workers ile Multi-threading Kullanımı
8.7. Deno ile Node.js Alternatifi Kullanımı

9. JavaScript ile Güvenlik
9.1. Cross-Site Scripting (XSS) Koruma Yöntemleri
9.2. Cross-Site Request Forgery (CSRF) ve Önleme Teknikleri
9.3. Content Security Policy (CSP) Kullanımı
9.4. JWT ve OAuth ile Kimlik Doğrulama
9.5. HTTPS ve SSL Kullanımı

10. Test ve Debugging Teknikleri
10.1. JavaScript Debugging Teknikleri (Chrome DevTools, Console API)
10.2. Jest ile Unit Test Yazma
10.3. Mocha ve Chai ile Test Senaryoları Yazma
10.4. Cypress ile End-to-End (E2E) Testler
10.5. ESLint ve Prettier ile Kod Standartlarını Sağlama

11. CI/CD ve Deployment (Canlıya Alma Süreçleri)
11.1. JavaScript Projelerinde CI/CD Pipeline Kurulumu
11.2. Docker ile JavaScript Uygulamalarını Konteynerleştirme
11.3. Firebase, Netlify, Vercel ile JavaScript Projelerini Deploy Etme
11.4. Nginx ve Apache Üzerinde JavaScript Deployment