Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
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.
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 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 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 Map ve Set: Key-Value Koleksiyonları 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 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 Class'ları: Constructor, Getter/Setter, Static ve Private Alanlar
Class syntax'ını kurabiye kalıbı benzetmesiyle kuruyor; constructor, getter/setter, static, # ile private alanlar, extends ve super'i örneklerle görüyor, class'ın aslında prototype olduğunu öğreniyoruz.
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 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 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 Fetch API: GET, POST, response.ok, Zaman Aşımı ve CORS'a Giriş
Fetch API ile veri çekip gönderiyor; response.ok ile 404'ün neden catch'e düşmediğini, POST/PUT/DELETE'i, AbortSignal.timeout ile zaman aşımını, CORS'u ve yükleniyor/hata durumlarını ekranda göstermeyi görüyoruz.
JavaScript ile Gelişmiş DOM: Gezinme, closest, dataset, template ve Toplu Güncelleme
DOM ağacında parent/children/sibling ve closest ile geziniyor; dataset, insertAdjacentHTML, DocumentFragment, template, cloneNode ve getBoundingClientRect'i görüyor, reflow'a girip toplu güncelleme yapıyoruz.