Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
JavaScript async/await: Okunur Asenkron Kod, Hata Yakalama ve Paralel Bekleme
async fonksiyonların neden hep promise döndürdüğünü, await'in sayfayı dondurmadan nasıl beklediğini, try/catch ile hata yakalamayı, sıralı ve paralel beklemeyi, döngüde await tuzağını ve top-level await'i görüyoruz.
JavaScript Promise: Üç Durum, then/catch/finally Zinciri ve Hata Yayılımı
Promise'in üç durumunu çağrı cihazı benzetmesiyle kuruyor; new Promise, then/catch/finally, zincirleme ve hata yayılımını, Promise.all ile race'i ve callback'i promise'e çevirmeyi örneklerle görüyoruz.
JavaScript Asenkron Programlamaya Giriş: Call Stack, Event Loop ve Callback'ler
Tek thread'li JavaScript'in beklemeleri sayfayı dondurmadan nasıl yönettiğini call stack, Web API'ler, callback queue ve event loop ile görüyor; setTimeout(fn, 0) sırrını ve callback hell'i çözüyoruz.
JavaScript Class'ları: Constructor, Getter/Setter, Static ve Private Field'ler
Class syntax'ını kurabiye kalıbı benzetmesiyle kuruyor; constructor, getter/setter, static, # ile private field'ler, extends ve super'i örneklerle görüyor, class'ın aslında prototype olduğunu öğreniyoruz.
JavaScript Hata Yönetimi: try/catch, Kendi Error Class'ın ve cause ile Hata Zinciri
try/catch/finally ve throw'u, yerleşik hata türlerini, extends Error ile kendi hata class'ını, ES2022'nin cause zincirini, Safari'de henüz olmayan Error.isError'ı ve hataları kullanıcıya düzgün göstermeyi öğreniyoruz.
JavaScript Map ve Set: Key-Value Collection'ları ve Yeni Set Method'ları
Map'in object'ten farkını, Set ile benzersiz değerleri, iterasyonu, ES2025 ile gelen union ve intersection gibi küme method'larını ve ES2026'nın getOrInsert method'unu örneklerle öğreniyoruz; WeakMap'e de kısaca bakıyoruz.
JavaScript this, call, apply ve bind: this Değeri Neye Göre Belirlenir?
this'in çağrı biçimine göre nasıl belirlendiğini, method kaybı tuzağını, arrow function'ların this'ini, call/apply/bind ile this'i ayarlamayı, event handler'lardaki this'i ve bind ile partial application'ı öğreniyoruz.
JavaScript Scope, Hoisting ve Closure: Değişkenler Nerede Yaşar?
Global, function ve block scope'u, scope chain'i, hoisting'i ve TDZ'yi; closure'ı da sayaç, private veri ve fonksiyon fabrikası örnekleri ve döngüdeki meşhur tuzakla birlikte öğreniyoruz.
JavaScript Array Method'ları Derinlemesine: map, filter, reduce, toSorted ve Object.groupBy
map, filter, reduce, find ailesi, some/every ve flatMap'i üretim bandı benzetmesiyle anlıyor; array'i bozmayan toSorted ve with method'larını (ES2023) ve Object.groupBy ile gruplamayı (ES2024) deniyoruz.
JavaScript Modern Syntax: Destructuring, Spread/Rest, Optional Chaining ve Mantıksal Atama
Array ve object destructuring'i, spread ve rest farkını, kısa property ve computed property yazımını, ?. ile ?? kullanımını ve ||=, &&=, ??= operatörlerini hangi ES sürümüyle geldikleriyle birlikte öğreniyoruz.
Tarayıcıda TypeScript: DOM Tipleri, querySelector ve Event'ler
lib.dom tiplerini, querySelector'ın dönüş tiplerini ve generic kullanımını, HTMLInputElement gibi element type'larını, event tiplerini ve event.target tuzağını görüyor, tsc çıktısını bir module script ile sayfada çalıştırıyoruz.
tsconfig Temelleri: TypeScript 7 Varsayılanları ve Kaldırılan Ayarlar
tsconfig.json'daki strict ailesini, target, lib, types, module, outDir ve rootDir ayarlarını, erasableSyntaxOnly ile verbatimModuleSyntax'ı, TypeScript 6/7 varsayılanlarını ve 7.0'da kaldırılan seçenekleri görüyoruz.